vue 列表页跳转详情页获取id以及详情页通过id获取数据
程序员文章站
2023-12-01 21:23:04
1.先在router.js中配置路由
{
path: '/moviedetail/:movieid',
name: 'moviedetail',...
1.先在router.js中配置路由
{ path: '/moviedetail/:movieid', name: 'moviedetail', component:moviedetail }
2.获取详情页的id,并派发父组件事件(movielist.vue)页面
<li v-for="(item,index) in movies" :key="index" @click="selectitem(item)"> 。。。。。。。 </li>
methods:{ selectitem(item){ //console.log(item.moveid); //var item = item.moveid; this.$emit('select',item); }
3.在movieshow页面引用movielist.vue页面
<movielist :movies="movies" @select="moviedetail"></movielist>
//转入电影详情页 moviedetail(item){ console.log(`${item.moveid}`); this.$router.push({ path: `/moviedetail/${item.moveid}` }) }
效果如下:
上面获取到了 id,接下来实现详情页通过id获取数据
1)先获取传过来的id
var movieid = that.$route.params && that.$route.params.movieid;
2)引用豆瓣网的api
/v2/movie/subject/:id
单个电影条目信息
const url = `api/movie/subject/${movieid}`; that.$axios.get(url) .then((res)=>{ console.log(res.data); })
效果如下
3)在页面中引用
<scroll class="movie-detail" :data="moviedetail" > 。。。。。。 </scroll>
在js中将moviedetail进行赋值 moviedetail = res.data
data(){ return { moviedetail:{} } }, created(){ this._getdateil(); }, components:{ scroll }, methods:{ _getdateil(){ var that = this; var movieid = that.$route.params && that.$route.params.movieid; console.log(movieid); //that.getmoviedetail(movieid); const url = `api/movie/subject/${movieid}`; that.$axios.get(url) .then((res)=>{ console.log(res.data); moviedetail = res.data; }) },
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。