【WEB】Vue2.0音乐APP实战中的知识点总结(三)
来源:互联网 发布:只有我知双语未删减版 编辑:程序博客网 时间:2024/06/05 17:13
一.效果展示
二.知识点总结
1.从歌手界面跳转到歌手详情界面:
首先配置路由:
{ path:'/singer', component:Singer, children:[ { path:':id', component:SingerDetail } ] },
之后,在singer.vue中挂载子路由
<router-view></router-view>
由于需求是点击列表进行跳转,因此在列表所在的组件中添加对列表的点击事件
<li @click="selectItem(item)" ></ li >selectItem(item) { this.$emit('select', item) },
注:由于list.vue是基础组件,因此不会构建业务逻辑,只负责把事件派发出去即可。
在singer中监听实例
<listview @select="selectSinger" :data="singers"></listview>
实现:
selectSinger(singer){ this.$router.push({ path:`/singer/${singer.id}` }) this.setSinger(singer) },
2.transform标签
转场动画:在singer.vue中
<transition name="slide"> <music-list :songs="songs" :title="title" :bg-image="bgImage"> </music-list></transition>
.slide-enter-active, .slide-leave-active transition:all 0.3s .slide-enter, .slide-leave-to transform:translate3d(100%,0,0)
3.VueX
在跳转的过程中,需要像详情页传入歌手的信息。这就需要使用Vuex, 也是本节的重点。
Vuex是一个专为Vue.js应用程序开发的状态模式。它采用集中式存储管理应用的所有组件的状态,并以规则保证状态以一种可预测的方式发生变化。
state.js
const state={ singer:{}}export default state
mutation-type.js
export const SET_SINGER = 'SET_SINGER'
mutation.js
import * as types from './mutation-type'const matutaions = { [types.SET_SINGER] (state,singer){ state.singer=singer }}export default matutaions
getters.js
export const singer=state => state.singer
index.js
import Vuex from "vuex"import Vue from 'vue'import * as actions from './actions'import * as getters from './getters'import state from './state'import mutations from './mutations'import createLogger from 'vuex/dist/logger'Vue.use(Vuex)const debug=process.env.NODE_ENV !=='production'export default new Vuex.Store({ actions, getters, state, mutations, strict:debug, plugins:debug?[createLogger()]:[]})
action.js//异步操作,或对mutations进行封装
在main.js中
import store from './store'new Vue({ el: '#app', render:h=>h(App), store, router})
以上,VUEX配置完毕
在singer.vue中,利用VUEX提供的语法糖,更加方便。
import {mapMutations} from 'vuex'
在methods中
...mapMutations({ setSinger:'SET_SINGER'//对象映射 }),
selectSinger(singer){ this.$router.push({ path:`/singer/${singer.id}` }) this.setSinger(singer)//传入singer,实现对与singer的提交 },
在singer-detail中
import {mapGetters} from 'vuex'
export default{ computed:{ ...mapGetters([ 'singer'//拿到sing ]) },
调用:this.singer
4.回退
this.$router.back()
阅读全文
1 0
- 【WEB】Vue2.0音乐APP实战中的知识点总结(三)
- 【Web】Vue2.0 音乐APP实战中的知识点总结(一)
- 【Web】vue2.0音乐APP实战中的知识点总结(二)
- 【WEB】Vue2.0音乐APP实战中的知识点总结(四)
- vue2.0音乐app项目笔记
- 【WEB】vue2.0开发音乐播放器
- vue2知识点实战
- React全家桶构建一款Web音乐App实战
- React全家桶构建一款Web音乐App实战3
- vue2.0知识点汇总
- Java知识点总结之Java Web 知识(三)
- vue2.0项目实战(1)---工具
- 小知识点(三)web.xml中的error-page不起作用
- Vue2.0实战
- [vue.js音乐App开发记录]vue2.0通过二级路由实现页面切换
- 某音乐APP总结
- Vue2.0相关的知识点
- 音乐播放demo知识点总结
- c++ boost 库中提供的share_ptr(智能指针)
- Qt入门之信号与槽机制
- Matlab画图常用命令
- [Makefile-随笔] ifdef多条件判断
- libiconv-1.14 error: ‘gets’ undeclared here (not in a function)
- 【WEB】Vue2.0音乐APP实战中的知识点总结(三)
- HOG特征原理
- SpringMVC的视图解析器用法
- hdu6053TrickGCD(莫比乌斯反演)
- STL源码剖析——关联式容器的总结
- 【视频开发】【Live555】摄像头采集,264编码,live555直播(0)
- Android 自定义代码快捷键和代码小技巧
- 判断一棵树是否是完全二叉树
- matlab保存数据到txt文档