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; }) },
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。