vue的mixins屬性詳解
首先先給出官網(wǎng) https://vuejs.org/v2/guide/mixins.html
今天在開(kāi)發(fā)項(xiàng)目的時(shí)候要改變一個(gè)標(biāo)簽的屬性,因?yàn)轫?xiàng)目中有多個(gè)地方都要改(業(yè)務(wù)邏輯相同),所以就看有沒(méi)辦法只改變一個(gè)地方,把方法加進(jìn)去,最后找官網(wǎng)就發(fā)現(xiàn)這個(gè)屬性。
下面是我的-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')
}
}
}
這個(gè)文件就暴露出一個(gè)對(duì)象,不過(guò)這個(gè)對(duì)象和組件很類似,也就是組件的js代碼部分類似。
這個(gè).js文件要做的事情就是,在生命周期中和playList 變量改變的時(shí)候觸發(fā)handlePlaylist 函數(shù),但是這個(gè)函數(shù)的邏輯是在各自要改變的組件當(dāng)中去實(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: 這個(gè)屬性是個(gè)數(shù)組,也就是說(shuō)可以加載多個(gè) minxin 文件。
handlePlaylist 方法是完成業(yè)務(wù)邏輯。所以在組件的生命周期中都會(huì)添加 this.handlePlaylist() 方法。
這樣就可以減少一部分代碼。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中使用Element的Table組件實(shí)現(xiàn)嵌套表格
本文主要介紹了Vue中使用Element的Table組件實(shí)現(xiàn)嵌套表格,通過(guò)type="expand"設(shè)置了一個(gè)展開(kāi)按鈕,點(diǎn)擊該按鈕會(huì)顯示與當(dāng)前行關(guān)聯(lián)的子表格內(nèi)容,感興趣的可以了解一下2024-01-01
vue路由切換之淡入淡出的簡(jiǎn)單實(shí)現(xiàn)
今天小編就為大家分享一篇vue路由切換之淡入淡出的簡(jiǎn)單實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
Vue實(shí)現(xiàn)購(gòu)物小球拋物線的方法實(shí)例
這篇文章主要給大家介紹了Vue實(shí)現(xiàn)購(gòu)物小球拋物線的方法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
解決Vue.js應(yīng)用回退或刷新界面時(shí)提示用戶保存修改問(wèn)題
這篇文章主要介紹了Vue.js應(yīng)用回退或刷新界面時(shí)提示用戶保存修改問(wèn)題,本文通過(guò)兩種手段防止運(yùn)營(yíng)編輯時(shí)丟失數(shù)據(jù),具體內(nèi)容詳情,感興趣的朋友跟隨小編一起看看吧2019-11-11
uni-popup手寫菜鳥(niǎo)上門取件時(shí)間選擇器
這篇文章主要為大家介紹了uni-popup手?jǐn)]了一個(gè)菜鳥(niǎo)上門取件時(shí)間選擇器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
vue 通過(guò)base64實(shí)現(xiàn)圖片下載功能
這篇文章主要介紹了vue 通過(guò)base64實(shí)現(xiàn)圖片下載功能,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12
詳解vue結(jié)合el-table實(shí)現(xiàn)表格小計(jì)總計(jì)需求(summary-method)
這篇文章主要介紹了vue結(jié)合el-table實(shí)現(xiàn)表格小計(jì)總計(jì)需求(summary-method),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
vue+canvas實(shí)現(xiàn)炫酷時(shí)鐘效果的倒計(jì)時(shí)插件(已發(fā)布到npm的vue2插件,開(kāi)箱即用)
這篇文章主要介紹了vue+canvas實(shí)現(xiàn)炫酷時(shí)鐘效果的倒計(jì)時(shí)插件(已發(fā)布到npm的vue2插件,開(kāi)箱即用) ,需要的朋友可以參考下2018-11-11

