vue的mixins属性详解
首先先给出官网https://vuejs.org/v2/guide/mixins.html
今天在开发项目的时候要改变一个标签的属性,因为项目中有多个地方都要改(业务逻辑相同),所以就看有没办法只改变一个地方,把方法加进去,最后找官网就发现这个属性。
下面是我的-mixin.js文件
import{mapGetters,mapMutations,mapActions}from'vuex'
exportconstplaylistMixin={
computed:{
...mapGetters([
'playList'
])
},
mounted(){
this.handlePlaylist(this.playList)
},
activated(){
this.handlePlaylist(this.playList)
},
watch:{
playList(newVal){
this.handlePlaylist(newVal)
}
},
methods:{
handlePlaylist(){
thrownewError('componentmustimplementhandlePlaylistmethod')
}
}
}
这个文件就暴露出一个对象,不过这个对象和组件很类似,也就是组件的js代码部分类似。
这个.js文件要做的事情就是,在生命周期中和playList变量改变的时候触发handlePlaylist函数,但是这个函数的逻辑是在各自要改变的组件当中去实现。下面看看怎么用Mixin。
import{playlistMixin}from'common/js/mixin'//引入Mixin
exportdefault{
mixins:[playlistMixin],
methods:{
handlePlaylist(playlist){
letbottom=playlist.length>0?'60px':''
this.$refs.recommend.style.bottom=bottom
this.$refs.scroll.refresh()
},
}
}
在使用的组件中这样调用。
mixins:这个属性是个数组,也就是说可以加载多个minxin文件。
handlePlaylist方法是完成业务逻辑。所以在组件的生命周期中都会添加this.handlePlaylist()方法。
这样就可以减少一部分代码。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。