vue的mixins屬性詳解
首先先給出官網(wǎng) https://vuejs.org/v2/guide/mixins.html
今天在開發(fā)項目的時候要改變一個標簽的屬性,因為項目中有多個地方都要改(業(yè)務邏輯相同),所以就看有沒辦法只改變一個地方,把方法加進去,最后找官網(wǎng)就發(fā)現(xiàn)這個屬性。
下面是我的-mixin.js 文件
import {mapGetters, mapMutations, mapActions} from 'vuex' export const playlistMixin = { computed: { ...mapGetters([ 'playList' ]) }, mounted() { this.handlePlaylist(this.playList) }, activated() { this.handlePlaylist(this.playList) }, watch: { playList(newVal) { this.handlePlaylist(newVal) } }, methods: { handlePlaylist() { throw new Error('component must implement handlePlaylist method') } } }
這個文件就暴露出一個對象,不過這個對象和組件很類似,也就是組件的js代碼部分類似。
這個.js文件要做的事情就是,在生命周期中和playList 變量改變的時候觸發(fā)handlePlaylist 函數(shù),但是這個函數(shù)的邏輯是在各自要改變的組件當中去實現(xiàn)。下面看看怎么用Mixin。
import {playlistMixin} from 'common/js/mixin' //引入Mixin export default { mixins: [playlistMixin], methods: { handlePlaylist (playlist) { let bottom = playlist.length > 0 ? '60px' : '' this.$refs.recommend.style.bottom = bottom this.$refs.scroll.refresh() }, } }
在使用的組件中這樣調(diào)用。
mixins: 這個屬性是個數(shù)組,也就是說可以加載多個 minxin 文件。
handlePlaylist 方法是完成業(yè)務邏輯。所以在組件的生命周期中都會添加 this.handlePlaylist() 方法。
這樣就可以減少一部分代碼。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
使用vue.js實現(xiàn)聯(lián)動效果的示例代碼
本篇文章主要介紹了使用vue.js實現(xiàn)聯(lián)動效果的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01使用vue-cli創(chuàng)建項目的圖文教程(新手入門篇)
這篇文章主要介紹了新手入門vue 使用vue-cli創(chuàng)建項目的圖文教程,本文是針對完全不了解過vue和npm的小白而寫的,需要的朋友可以參考下2018-05-05