亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 Vue 路由參數標題轉換為 id

將 Vue 路由參數標題轉換為 id

幕布斯6054654 2023-11-11 21:41:16
我正在創建一個課程網站,每個課程都有自己的頁面。假設我打開課程號 1,則鏈接為 http://localhost:8080/course/1 。我想將其更改為 http://localhost:8080/course/course-name-here 。我的問題是,當我更改參數時,不會從 API 獲取數據。索引.js{    path: '/courses',    name: 'Courses',    component: () => import(/* webpackChunkName: "about" */ '../views/Courses.vue')},{    path: '/course/:id',    name: 'CourseDetail',    props: true,    component: () => import(/* webpackChunkName: "about" */ '../views/CourseDetail.vue')}課程列表.vue<v-row>   <v-col sm="6" md="4" v-for="course in courses" v-bind:key="course.courseId">      <router-link v-bind:to="{name: 'CourseDetail', params: {id: course.courseTitle}}" class="text-decoration-none">         <VerticalCard v-bind:course="course"/>      </router-link>   </v-col></v-row>CourseDetail.vue(腳本)import axios from 'axios'export default {  props:['id'],  data: function(){    return {      singleCourse: null,      selectedIndex: null,      showPage: false    }  },  methods: {    getData() {      var that = this      axios.get('http://my-api-here.amazonaws.com/v1/api/course?id=' + this.id,            {              headers: {                'Authorization' : 'Bearer ' + this.$store.state.authKey               }            })            .then(function(response) {              that.singleCourse = response.data.body            })      },      show() {        if(this.$store.state.isLogin == true){          this.showPage = true        }        else {          this.$router.replace('/login')        }      }  },  mounted: function() {    this.getData()    this.show()  }}
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

使用對象通過名稱查找每個課程的 id。傳遞title參數而不是(在路由、鏈接和道具中id更改為)。title在組件中:


data() {

  return {

    courseIds: {

      'course-name-here': 1,

      'other-course': 2,

      'one-more': 3

    }

  }

}

使用它getData():


getData() {

   ...

   const url = 'http://my-api-here.amazonaws.com/v1/api/course?id=';

   axios.get(url + this.courseIds[this.title])

   ...

}

如果其他模塊/組件需要訪問它,您可以將查找數據保留在 Vuex 中。


查看完整回答
反對 回復 2023-11-11
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號