Vue音乐--搜索页面07_点击歌手

大概步骤:

在这里插入图片描述

目标效果

在这里插入图片描述


七、点击歌手li

  • 要点
    • 点击歌手,跳转到路由歌手详情页
    • 歌手详情页的数据设置了从vuex中获取
    • 所以点击同时把歌手数据传递到vuex中

(一)、配置子路由和点击跳转

↓router- ->index.js

{
      path: '/search',
      name: 'Search',
      component: Search,
      children:[{
        path: '/search/:id',
        name: 'SearchDetail',
        component: SingerDetail,
      }]
    }

↓SearchSuggest.vue
创建类的方法,把数据创建成一个对象
这里需要用到的歌手数据是歌手名,歌手id和歌手图片id(注意和教程视频的id不一样

import Singer from '@/common/js/singer' //引入歌手数据提取方法类

/*****跳转路由,歌手详情页*********/
  selectItem(item){
    //判断是歌手,并把歌手数据提取出出来
    if(item.type===TYPE_SINGER){
      const singer = new Singer({
        id:item.singerid,
        mid:item.singermid,
        name:item.singername
      })
		this.$router.push({
       	 path:`/search/${this.singer.id}`
     	 })   
   	}

↓Singer.js

export default class Singer {
  constructor({id, name,mid}) {
    this.id = id
    this.mid = mid
    this.name = name
    this.avatar = `https://y.gtimg.cn/music/photo_new/T001R300x300M000${mid}.jpg?max_age=2592000`
  }
}

(二)、把用类处理后的歌手对象存入vuex

↓store- ->state.js
查看vuex,发现在歌手页面已经配置了singer对象vuex
所以,直接调用mutations来存入即可

import {mapMutations} from 'vuex' //引入点击存入数据方法的vuex

...mapMutations({
      setSinger:'SET_SINGER'
    }),
//把点击的数据存入vuex自动渲染入歌手详情页
      this.setSinger(singer)

在这里插入图片描述

  • 图片src需要跨域才能获取

项目来源:慕课网
如有建议和疑问可联系
QQ:1017386624
邮箱:1017386624@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值