vue全局混入之狀態(tài)判斷是否執(zhí)行點擊
vue全局混入狀態(tài)判斷是否執(zhí)行點擊
1.項目下創(chuàng)建 mps-ui\src\plugins\listenerClick.js
2.文件內(nèi)寫法
//listenerClick.js import { mapGetters } from 'vuex' export default { computed: { ...mapGetters(['leftNavStatus']) }, data() { return {} }, mounted() { if (document.getElementById('controlBtn11')) { document .getElementById('controlBtn11') .addEventListener('click', this.doSomeThings(), true) } }, methods: { doSomeThings() {} } }
3.main.js
加以下代碼
// 全局監(jiān)聽 Vue.mixin(require('./directive/listenerClick.js').default)
全局可使用這里面的變量和方法
vue根據(jù)條件決定是否執(zhí)行事件
再配合三目運(yùn)算 , 可以更完善
vue中的全局混入mixin
混入提供了一種非常靈活的方式,來分發(fā) Vue 組件中的可復(fù)用功能。
一個混入對象可以包含任意組件選項。
當(dāng)組件使用混入對象時,所有混入對象的選項將被“混合”進(jìn)入該組件本身的選項。
舉例
// 定義一個混入對象 var myMixin = { created() { this.hello() }, methods: { hello() { console.log('hello from mixin!') } } } // main.js全局使用 Vue.mixin(myMixin)
因為是全局混入,myMixin中的數(shù)據(jù)和方法會被掛載到每個組件的實例對象上
注意:
1、當(dāng)組件和混入對象含有同名選項時,這些選項將以恰當(dāng)?shù)姆绞竭M(jìn)行“合并”。
比如,數(shù)據(jù)對象在內(nèi)部會進(jìn)行遞歸合并,并在發(fā)生沖突時以組件數(shù)據(jù)優(yōu)先。
2、同名鉤子函數(shù)將合并為一個數(shù)組,因此都將被調(diào)用。另外,混入對象的鉤子將在組件自身鉤子之前調(diào)用。
3、值為對象的選項,例如 methods
、components
和 directives
,將被合并為同一個對象。兩個對象鍵名沖突時,取組件對象的鍵值對。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于vue-cli3創(chuàng)建libs庫的實現(xiàn)方法
這篇文章主要介紹了基于vue-cli3創(chuàng)建libs庫的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12vue使用cesium創(chuàng)建數(shù)據(jù)白模方式
這篇文章主要介紹了vue使用cesium創(chuàng)建數(shù)據(jù)白模方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10vue路由傳參-如何使用encodeURI加密參數(shù)
這篇文章主要介紹了vue路由傳參-如何使用encodeURI加密參數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06