亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue跳轉到詳情頁的兩種實現(xiàn)方法

 更新時間:2023年06月12日 14:47:46   作者:#小裁  
最近接觸了vue項目,下面這篇文章主要給大家介紹了關于vue跳轉到詳情頁的兩種實現(xiàn)方法,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

路由跳轉過程中的參數(shù)傳遞

業(yè)務場景:在電影列表頁面中點擊某一項的點擊名稱,跳轉到電影詳情頁,查看選中電影的詳細信息。這個過程就需要在跳轉的同時傳遞電影ID作為參數(shù),這樣,詳情頁才可以獲取到選中項的ID,從而發(fā)送請求,查詢詳細信息。

1. 準備一個電影列表頁:List.vue 一個電影詳情頁:Detail.vue

2. 配置路由:

a. 當訪問地址:http://localhost:8080/list時,看到列表頁。

b. 當訪問地址:http://localhost:8080/detail時,看到詳情頁。

3. 注意:需要在App.vue中添加占位符:

路由跳轉過程中的參數(shù)傳遞方式1

通過在請求資源路徑后用?拼接查詢字符串的方式,傳遞參數(shù):

<router-link to="/detail?id=7&name=zs">xx</router-link>

方法一: 問號版

List.vue列表頁: 列表項填入router-link標簽

  <template>
  <tbody>
  <tr v-for="(item, i) in data.result" :key="item.id">
  <td>
  <router-link :to="`/detail?id=${item.id}`">//問號版的
  {{item.title}}
</router-link>
  </td>
  </tr>
  </tbody>
  </template>

detail.vue詳情頁:

 <template>
  <div>
  <h2>電影詳情頁</h2>
  <p>電影名稱:{{movieDate.title}}</p>
  <p>電影類型:{{movieData.type}}</p>
  </div>
  </template>
  <script>
  import  myaxios from './http/MyAxios'
export default{	
  data( ){
    return{
      movieData:{ },//綁定電影對象
    }
  },
  mounted( ){  //當前主鍵已經(jīng)掛載到DOM上,(已展示)時被vue自動調(diào)用
    console.log('生命周期方發(fā)mounted被調(diào)用')
    let  id  = this.$router.query.id  //接收請求路徑后的   ?key= value  格式的參數(shù)id
    console.log('接收到參數(shù)id:' + id)
    let url  = "https://web.codeboy.com/bmdapi/movie-info/query"
    myaxios.get(url,{ id }).then(res =>{
      console.log(res)  //res.data.data中存儲了電影對象{ }
      this.movieDate = res.data.data
    })
  }
};
</script>

方法二:不帶問號版的

<router-link to="/detail/7">xx</router-link>
this.$router.push('/detail/7')

目標頁如何接收該參數(shù)?

1、配置路由:

{
path:'/detail/:id',
component: ( ) => import 'Detail.vue'
}

該路由的配置,將會匹配:

/detail/7    =>   id:7
/detail/123  =>   id:123
/detail/abc  =>   id:abc

vue將會自動封裝路徑參數(shù),放入this.$route.params屬性中。如下即可獲取該參數(shù):

mounted(){
  	let  id = this.$route.params.id
}

List.vue列表頁: 列表項填入router-link標簽

<template>
   <tbody>
        <tr v-for="(item, i) in data.result" :key="item.id">
          <td>
          <img  :src="item.cover"  width="60px"
			@click="$router.push(`/detail/${item.id}`)">
          </td>
        </tr>
      </tbody>
</template>

router/index.js配置路由頁:

{
paht:  '/detail/:id',
name: 'detail',
component: ( ) =>import ('../Detail.vue')
}

detail.vue詳情頁:

<template>
<div>
<h2>電影詳情頁</h2>
<p>電影名稱:{{movieDate.title}}</p>
<p>電影類型:{{movieData.type}}</p>
</div>
</template>
<script>
import  myaxios from './http/MyAxios'
   export default{	
data( ){
return{
movieData:{ },//綁定電影對象
}
},
mounted( ){  //當前主鍵已經(jīng)掛載到DOM上,(已展示)時被vue自動調(diào)用
console.log('生命周期方發(fā)mounted被調(diào)用')
let  id  = this.$router.params.id  //接收路徑參數(shù): /detail/id   格式的參數(shù)id
console.log('接收到參數(shù)id:' + id) 
let url  = "https://web.codeboy.com/bmdapi/movie-info/query"
myaxios.get(url,{ id }).then(res =>{
console.log(res)  //res.data.data中存儲了電影對象{ }
this.movieDate = res.data.data
})
}
};
</script>

總結

到此這篇關于vue跳轉到詳情頁的兩種實現(xiàn)方法的文章就介紹到這了,更多相關vue跳轉到詳情頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論