vuejs开发音乐播放器(二):从歌手页面到歌手详情页面的子路由跳转

1、先引入singer_detail.vue文件,再配置子路由

router/index.js

//import the singer_detail.vue
import SingerDetail from 'components/singer-detail/singer-detail'

//set the route 
export default new Router({
  routes: [
    {
      path: '/singer',
      component: Singer,
      children: [
        {
          path: ':id',
          component: SingerDetail
        }
      ]
    }
  ]
})

2、先说明下,listview是singer引入的基础组件,listview中存放的是歌手列表,因此要给listview中的歌手列表绑定一个点击事件,由于listview是基础组件,因此没有外部逻辑,它要做的是把这个点击事件使用$emit派发出去,让singer接收。 listview.vue

//bind click
<li @click="selectItem(item)" v-for="item in group.items" class="list-group-item">
          <img class="avatar" v-lazy="item.avatar">
          <span class="name">{{item.name}}</span>
</li>

//emit to singer.vue
methods: {
          selectItem(item) {
            this.$emit('select', item)
          }
      }

3、singer.vue接收listview.vue派发的时间和参数,并挂载二级路由

singer.vue

<div class="singer">
    <listview @select="selectSinger" :data="singers"></listview>
    <router-view></router-view>
</div>

//push
methods: {
    selectSinger(singer) {
      this.$router.push({
        path: `/singer/${singer.id}`
      })
    }
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值