美文网首页前端开发笔记
vue列表到详情页面的操作

vue列表到详情页面的操作

作者: 喵呜Yuri | 来源:发表于2018-12-13 16:59 被阅读0次

    希望我这条可以置顶,因为搜了一下午都搜到的什么玩意儿
    这个几行代码,你粘一下就可以用了,字段api啊什么的换一下
    需求:
    点击“推荐歌单”--进入歌单列表
    A.vue


    image.png

    进入到该页面:
    A-detail.vue


    image.png

    router/index.js

    const router = new Router({
      routes: [
    ...,
    {
          path: '/favoriteList/:id',
          name: 'favorite_list',
          component: favorite_list
        }
    ]
    }
    

    A.vue:

    //html
      <li class="songs-item-li" @click="gosonglistFn(item)" v-for="(item,k) in songList" v-if="k<6">
                  <img :src="item.coverImgUrl" alt="">
                  <div class="listen">
                    <i class="fa fa-headphones"></i>{{item.songNum}}
                  </div>
                  <p class="text">{{item.title}}</p>
      </li>
    
    //js
       gosonglistFn(item_){
              this.$router.push({
                name: 'favorite_list',
                params: {
                  id:item_.id
                }
              });
            }
    

    或者:

    //html
    <router-link  :to="`/favoriteList/${item.id}`" :key="item.id" class="around">click</router-link>
    

    A-detail.vue

        beforeRouteEnter (to, from, next) {
    //beforeRouteEnter中this无效,所以能用vm
            next(vm => {
              var creator_ = to.params.id;//好的抓到id了
              axios.get('https://api.bzqll.com/music/netease/search?        key=579621905&s='+creator_+'&type=song&limit=20&offset=0').then((res)=>{
                vm.songlikelist = res.data.data;
              });
            })
          },
    

    关于beforeRouteEnter(2.2新增)看如下网址:
    https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E8%B7%AF%E7%94%B1%E7%8B%AC%E4%BA%AB%E7%9A%84%E5%AE%88%E5%8D%AB

    嗯这样就可以实现了,以下是我的笔记总结,可以不看。

    -----------------------------------------------------忽略的分隔符吼吼吼-----------------------------------------------------------------------------
    http://localhost:8081/#/favoriteList/id中的id变化时,vue默认组件复用,所以尽管id变化,但是不会再触发mounted,created等方法,所以之前搜到的高票置顶的答案无卵用:

    image.png

    id变化后我是没从created里拿到过,而且大多都是类似于这样的答案,很奇怪,可能我没get到他那个点吧

    相关文章

      网友评论

        本文标题:vue列表到详情页面的操作

        本文链接:https://www.haomeiwen.com/subject/visbhqtx.html