摘要:有兩個非常相似的組件,他們的基本功能是一樣的,可以局注冊一個混合,影響注冊之后所有創(chuàng)建的每個實例,這就是。全局下注冊比如在構建的項目中,中定義了一個并且掛載在實例上,那么在實例下的每個組件都會在掛載的時候執(zhí)行一次這個方法,輸出多次
mixins
mixin: 有兩個非常相似的組件,他們的基本功能是一樣的,可以局注冊一個混合,影響注冊之后
所有創(chuàng)建的每個 Vue 實例,這就是mixin。
Mixin對編寫函數式風格的代碼很有用,一般情況下不會改變函數作用域外部的任何東西,輸入相同,得到的結果也一定相同。
基礎用法新建一個mixin.js 文件,
minix.js export const myminix= { data(){ return { } }, mounted(){ this.sayhello(); }, created(){ }, methods:{ sayhello:function(){ console.log("hello from myMinix!"); } } }
一個簡單的方法,在組件被掛載后 輸出 “hello”,
然后在想要使用這個公共方法的組件中引入進去。
other.vue script: export default { mixins:[myminix], }
這樣引入后的效果,就是在other的組件中,同樣加入了sayhello() 方法
other.vue script: export default { mounted(){ this.sayhello(); }, methods:{ sayhello:function(){ console.log("hello from myMinix!"); } } //output "hello from myMinix"
在other 組件被掛載后,輸出hello from myMinix,
沖突到這里,會有一個問題,如果other.vue 本身也有同樣是操作掛載在mounted 上,到底誰會先執(zhí)行,
other.vue script: export default { mixins:[myminix], mounted(){ this.sayhello(); }, methods:{ sayhello:function(){ console.log("hello from other instance!"); } } //output "hello from myMinix" //output "hello from myMinix"
輸出了兩次一樣的結果,都來自other 組件, 第一個函數被調用時,沒有被銷毀,它只是被重寫了。我們在這里調用了兩次sayhello()函數。
全局下注冊minix比如在 vue-cli 構建的項目中,main.js 中定義了一個minix,并且掛載在vue 實例上,
Vue.mixin({ mounted() { console.log("hello from other"); } }) new Vue({ })
那么在 Vue 實例下的每個組件都會 在掛載的時候執(zhí)行一次這個方法,輸出多次 “hello from other”
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/87249.html
摘要:而我覺得現在出一個白話版,是讓大家有興趣去研究源碼的時候,可以提前理清一下思路。相當于封裝,提取公共部分。顯然,今天我不是來教大家怎么用的,怎么用看文檔就好了,我是講解生命的真諦內部的工作原理。而這個不會合并,直接替換掉整個選項 寫文章不容易,點個贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內部詳情,讓我們一起學習吧研究基于 Vue版...
摘要:兩個對象鍵名沖突時,取組件對象的鍵值對也使用同樣的策略進行合并。代碼理解全局混合也可以全局注冊混合對象。注意使用一旦使用全局混合對象,將會影響到所有之后創(chuàng)建的實例為自定義的選項注入一個處理器。 20190122 Vue中mixin怎么理解? mixin是為了讓可復用的功能靈活的混入到當前組件中,混合的對象可以包含任意組件選項(生命周期,指令之類等等), mixin翻譯過來叫混合,高級的...
摘要:前言最近開發(fā)的頁面以及功能大都以表格為主,接口獲取來的數據大都是需要經過處理,比如時間戳需要轉換,或者狀態(tài)碼的轉義。首先,還是在文件中定義一個狀態(tài)碼對應對象,這里我們將其對應的內容設為段落。 前言 最近開發(fā)的頁面以及功能大都以表格為主,接口獲取來的 JSON 數據大都是需要經過處理,比如時間戳需要轉換,或者狀態(tài)碼的轉義。對于這樣的問題,各大主流框架都提供了類似于過濾的方法,在 Vue ...
摘要:利用可以對組件代碼進行抽離及封裝。注如果傳入的是鉤子函數,則按照數組的順序依次執(zhí)行鉤子函數,且會在組件之前執(zhí)行跟淺拷貝的順序有出入頁面執(zhí)行時,依次會打印 主要摘錄的是Vue教程中的疑難點,結合demo來加深概念的理解(持續(xù)更新?。? 箭頭函數在Vue中使用 不要在選項屬性或回調上使用箭頭函數(demo01) var vm1 = new Vue({ data: { ...
閱讀 4639·2021-11-19 09:59
閱讀 3509·2021-10-12 10:12
閱讀 2723·2021-09-22 15:25
閱讀 3406·2019-08-30 15:55
閱讀 1269·2019-08-29 11:27
閱讀 1548·2019-08-28 18:06
閱讀 2822·2019-08-26 13:41
閱讀 2635·2019-08-26 13:41