vue跳轉(zhuǎn)到詳情頁(yè)的兩種實(shí)現(xiàn)方法
路由跳轉(zhuǎn)過(guò)程中的參數(shù)傳遞
業(yè)務(wù)場(chǎng)景:在電影列表頁(yè)面中點(diǎn)擊某一項(xiàng)的點(diǎn)擊名稱,跳轉(zhuǎn)到電影詳情頁(yè),查看選中電影的詳細(xì)信息。這個(gè)過(guò)程就需要在跳轉(zhuǎn)的同時(shí)傳遞電影ID作為參數(shù),這樣,詳情頁(yè)才可以獲取到選中項(xiàng)的ID,從而發(fā)送請(qǐng)求,查詢?cè)敿?xì)信息。
1. 準(zhǔn)備一個(gè)電影列表頁(yè):List.vue 一個(gè)電影詳情頁(yè):Detail.vue
2. 配置路由:
a. 當(dāng)訪問(wèn)地址:http://localhost:8080/list時(shí),看到列表頁(yè)。
b. 當(dāng)訪問(wèn)地址:http://localhost:8080/detail時(shí),看到詳情頁(yè)。
3. 注意:需要在App.vue中添加占位符:
路由跳轉(zhuǎn)過(guò)程中的參數(shù)傳遞方式1
通過(guò)在請(qǐng)求資源路徑后用?拼接查詢字符串的方式,傳遞參數(shù):
<router-link to="/detail?id=7&name=zs">xx</router-link>
方法一: 問(wèn)號(hào)版
List.vue列表頁(yè): 列表項(xiàng)填入router-link標(biāo)簽
<template>
<tbody>
<tr v-for="(item, i) in data.result" :key="item.id">
<td>
<router-link :to="`/detail?id=${item.id}`">//問(wèn)號(hào)版的
{{item.title}}
</router-link>
</td>
</tr>
</tbody>
</template>detail.vue詳情頁(yè):
<template>
<div>
<h2>電影詳情頁(yè)</h2>
<p>電影名稱:{{movieDate.title}}</p>
<p>電影類型:{{movieData.type}}</p>
</div>
</template>
<script>
import myaxios from './http/MyAxios'
export default{
data( ){
return{
movieData:{ },//綁定電影對(duì)象
}
},
mounted( ){ //當(dāng)前主鍵已經(jīng)掛載到DOM上,(已展示)時(shí)被vue自動(dòng)調(diào)用
console.log('生命周期方發(fā)mounted被調(diào)用')
let id = this.$router.query.id //接收請(qǐng)求路徑后的 ?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中存儲(chǔ)了電影對(duì)象{ }
this.movieDate = res.data.data
})
}
};
</script>方法二:不帶問(wèn)號(hào)版的
<router-link to="/detail/7">xx</router-link>
this.$router.push('/detail/7')目標(biāo)頁(yè)如何接收該參數(shù)?
1、配置路由:
{
path:'/detail/:id',
component: ( ) => import 'Detail.vue'
}該路由的配置,將會(huì)匹配:
/detail/7 => id:7 /detail/123 => id:123 /detail/abc => id:abc
vue將會(huì)自動(dòng)封裝路徑參數(shù),放入this.$route.params屬性中。如下即可獲取該參數(shù):
mounted(){
let id = this.$route.params.id
}List.vue列表頁(yè): 列表項(xiàng)填入router-link標(biāo)簽
<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配置路由頁(yè):
{
paht: '/detail/:id',
name: 'detail',
component: ( ) =>import ('../Detail.vue')
}detail.vue詳情頁(yè):
<template>
<div>
<h2>電影詳情頁(yè)</h2>
<p>電影名稱:{{movieDate.title}}</p>
<p>電影類型:{{movieData.type}}</p>
</div>
</template>
<script>
import myaxios from './http/MyAxios'
export default{
data( ){
return{
movieData:{ },//綁定電影對(duì)象
}
},
mounted( ){ //當(dāng)前主鍵已經(jīng)掛載到DOM上,(已展示)時(shí)被vue自動(dòng)調(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中存儲(chǔ)了電影對(duì)象{ }
this.movieDate = res.data.data
})
}
};
</script>總結(jié)
到此這篇關(guān)于vue跳轉(zhuǎn)到詳情頁(yè)的兩種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)vue跳轉(zhuǎn)到詳情頁(yè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用百度地圖報(bào)錯(cuò)BMap?is?not?defined問(wèn)題及解決
這篇文章主要介紹了vue使用百度地圖報(bào)錯(cuò)BMap?is?not?defined問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
拿來(lái)即用的vue旋轉(zhuǎn)木馬組件demo
這篇文章主要為大家介紹了拿來(lái)即用的vue旋轉(zhuǎn)木馬組件demo詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
詳解webpack+vue-cli項(xiàng)目打包技巧
本篇文章主要介紹了詳解webpack+vue-cli項(xiàng)目打包技巧 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
uni-app中app和webview的h5通信簡(jiǎn)單步驟
這篇文章主要介紹了如何在nvue頁(yè)面中使用webview組件,并詳細(xì)介紹了如何在h5項(xiàng)目中安裝和配置npmiy_uniwebview插件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
Vue3使用dataV報(bào)錯(cuò)問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了Vue3中使用dataV報(bào)錯(cuò)問(wèn)題的解決方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
基于vue手動(dòng)實(shí)現(xiàn)一個(gè)日歷組件
這篇文章主要為大家詳細(xì)介紹了如何基于vue手動(dòng)實(shí)現(xiàn)一個(gè)日歷組件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
vue3超出文本展示el tooltip實(shí)現(xiàn)示例
這篇文章主要為大家介紹了vue3超出文本展示el tooltip實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

