日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Vue的mixin策略

瀏覽:147日期:2022-10-25 09:42:54

我之前一直以為mixin的合并是以組件內的優先,即mixin的內容如果和組件內有沖突的,以組件內為準,確實存在這種情況,但是vue指定的策略更詳細,下面分別記錄各種情況對應的合并策略

基本

當一個組件使用mixin的時候,所有mixin的選項會被混入到組件自己的選項中, 這部分沒什么好說的,直接看代碼

// define a mixin objectconst myMixin = { created() { this.hello() }, methods: { hello() { console.log(’hello from mixin!’) } }}// define an app that uses this mixinconst app = Vue.createApp({ mixins: [myMixin]})app.mount(’#mixins-basic’) // => 'hello from mixin!'

選項的合并策略

這里的選項指的就是 data methods和生命周期鉤子函數這些選項,他們的會采取不同的合并策略

像data,methods,components,directives這樣的會被合并進同一個對象中,并且遇到沖突項以組件的為準

const myMixin = { data() { return { message: ’hello’, foo: ’abc’ } }}const app = Vue.createApp({ mixins: [myMixin], data() { return { message: ’goodbye’, bar: ’def’ } }, created() { console.log(this.$data) // => { message: 'goodbye', foo: 'abc', bar: 'def' } }})

const myMixin = { methods: { foo() { console.log(’foo’) }, conflicting() { console.log(’from mixin’) } }}const app = Vue.createApp({ mixins: [myMixin], methods: { bar() { console.log(’bar’) }, conflicting() { console.log(’from self’) } }})const vm = app.mount(’#mixins-basic’)vm.foo() // => 'foo'vm.bar() // => 'bar'vm.conflicting() // => 'from self'

而對于鉤子函數就不是簡單的替換了,如果有同名的,他們會被一起合并進數組中,然后依次調用,且mixin的鉤子函數會率先被調用

const myMixin = { created() { console.log(’mixin hook called’) }}const app = Vue.createApp({ mixins: [myMixin], created() { console.log(’component hook called’) }})// => 'mixin hook called'// => 'component hook called'

全局混入和自定義選項

const app = Vue.createApp({ myOption: ’hello!’})// inject a handler for `myOption` custom optionapp.mixin({ created() { const myOption = this.$options.myOption if (myOption) { console.log(myOption) } }})app.mount(’#mixins-global’) // => 'hello!'

上述代碼,我們在全局創建了一個自定義選項,然后進行了全局混入處理,但是需要注意的是,這會影響到這個app所有的子組件:

const app = Vue.createApp({ myOption: ’hello!’})// inject a handler for `myOption` custom optionapp.mixin({ created() { const myOption = this.$options.myOption if (myOption) { console.log(myOption) } }})// add myOption also to child componentapp.component(’test-component’, { myOption: ’hello from component!’})app.mount(’#mixins-global’)// => 'hello!'// => 'hello from component!'

我們可以看到,對于自定義選項這不是簡單的替換,而是分別調用,當然我們也可以制定我們自己的合并策略:

const app = Vue.createApp({})app.config.optionMergeStrategies.customOption = (toVal, fromVal) => { // return mergedVal}

合并策略接收兩個參數,分別是指定項在父實例和子實例的值,當使用mixin的時候我們可以查看打印什么:

const app = Vue.createApp({ custom: ’hello!’})app.config.optionMergeStrategies.custom = (toVal, fromVal) => { console.log(fromVal, toVal) // => 'goodbye!', undefined // => 'hello', 'goodbye!' return fromVal || toVal}app.mixin({ custom: ’goodbye!’, created() { console.log(this.$options.custom) // => 'hello!' }})

可以看到第一次從mixin打印,然后從app打印。

注意事項

mixin很容易造成沖突,你得確保不會有沖突的屬性名,來避免沖突,這會造成額外的負擔 復用性有限,因為mixin不能接受參數,所以邏輯是寫定的,不靈活

所以官方推薦使用 Composition Api來組織邏輯

以上就是詳解Vue的mixin策略的詳細內容,更多關于Vue的mixin策略的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品中文字幕乱码| 午夜日韩福利| 日本视频在线一区| 综合在线一区| 亚洲综合不卡| 伊人国产精品| 911亚洲精品| 国产精品久一| 精品美女久久| 日韩av首页| 99久久久久| 中文亚洲免费| 日韩精品免费视频一区二区三区| 欧美精品三级在线| 国产一区二区三区探花| 亚洲三级欧美| 91九色精品国产一区二区| 91久久午夜| 亚洲精品成人一区| 国产美女久久| 国产理论在线| 欧美福利一区| 中文在线不卡| 国产欧美一区二区三区国产幕精品| 国产探花一区| 亚洲永久av| 亚洲免费影院| 国产伦乱精品| 日本欧美不卡| 男女男精品视频网| 久久不见久久见中文字幕免费| 亚洲最新无码中文字幕久久| 亚洲综合日韩| 国产精品毛片视频| 偷拍精品精品一区二区三区| 欧美99久久| 日本午夜精品一区二区三区电影| 国产一区福利| 丝袜诱惑制服诱惑色一区在线观看| 日韩精品第二页| 97精品中文字幕| 夜夜嗨一区二区| 911精品国产| 亚洲精品在线影院| 亚洲丝袜啪啪| 中文字幕高清在线播放| 亚洲一区黄色| 精品一区视频| 香蕉视频成人在线观看| 欧美精品导航| 久久精品青草| 国产一级成人av| 久久精品动漫| 国产日韩欧美一区在线| 亚洲国产综合在线看不卡| 日本午夜精品一区二区三区电影| 91精品国产调教在线观看| 日韩国产欧美在线视频| 欧美日韩一二三四| 国产精品日本一区二区不卡视频| 日本韩国欧美超级黄在线观看| 日本a级不卡| 欧美一区二区三区高清视频| 久久精品 人人爱| 久久精品影视| 国产日韩1区| 美女精品一区| 黄色在线网站噜噜噜| 综合五月婷婷| 久久久久99| 国产福利亚洲| 亚洲午夜久久| 在线精品视频在线观看高清| 精品一区二区三区亚洲 | 欧美激情国产在线| 日本在线不卡视频| 欧美另类专区| 91亚洲一区| 国产免费久久| 综合亚洲自拍| 国产综合激情| 亚洲一级少妇| 精品淫伦v久久水蜜桃| 亚洲精品美女91| 国产视频亚洲| 久久精品国语| 亚洲国产福利| 国产福利一区二区精品秒拍| 最新国产精品久久久| 亚洲五月婷婷| 美女视频免费精品| 一区二区国产在线观看| 亚洲精品成a人ⅴ香蕉片| 日韩精品一区二区三区中文 | 国产精品原创| 亚洲尤物在线| а√天堂8资源在线| 国产精品一区二区三区av| 欧美一区二区三区免费看| 色爱综合网欧美| 久久国产精品美女| 欧美日韩亚洲一区三区| 噜噜噜躁狠狠躁狠狠精品视频| 精品欧美一区二区三区在线观看| 美女久久精品| 麻豆精品国产91久久久久久| 亚洲精品一区二区妖精| 深夜视频一区二区| 日韩欧美综合| 亚洲永久av| 日韩免费av| 午夜av不卡| 欧美xxxx中国| 日本一区二区免费高清| 牛牛精品成人免费视频| 国产精品一区高清| 国产精品一区二区精品| 91成人在线| 婷婷综合国产| 亚洲欧美日本国产| 亚洲在线久久| 日韩中文欧美在线| 免费日韩一区二区| 三级亚洲高清视频| 亚洲丝袜啪啪| 日本成人在线视频网站| 欧美久久久网站| 国产福利亚洲| 精品久久久中文字幕| 伊人久久亚洲| 日韩成人在线看| 丝袜美腿成人在线| 久久九九电影| 欧美日韩一二三四| 亚洲一区亚洲| 亚洲我射av| 久久av国产紧身裤| 精品美女久久| 捆绑调教美女网站视频一区| 亚洲区第一页| 亚洲开心激情| 少妇精品久久久一区二区| 日韩成人午夜精品| 国产精品久久乐| 久久精品资源| 国产精品99一区二区三| 日韩在线观看一区| 久久中文视频| 免费人成黄页网站在线一区二区 | www成人在线视频| 欧美日韩视频| 婷婷综合电影| 精品国产一区二区三区性色av| 色乱码一区二区三区网站| 欧美日韩中文字幕一区二区三区| 在线国产一区| 日韩国产精品久久久久久亚洲| 国产精品激情电影| 97精品一区二区| 亚洲欧洲午夜| 青青草伊人久久| 精品国产a一区二区三区v免费| 日韩高清中文字幕一区二区| 激情91久久| 亚洲网址在线观看| 麻豆久久久久久| 久久久久一区| 日韩综合一区二区| 国产福利91精品一区二区| 播放一区二区| 国产伦理一区| 欧美二区视频| 国产欧美亚洲精品a| av不卡在线看| 四虎成人av| 久久不见久久见中文字幕免费| 日韩深夜视频| 在线看片福利| 欧美aa在线观看| 国产亚洲一区| 久久香蕉网站| 午夜国产欧美理论在线播放 | 色婷婷狠狠五月综合天色拍| 九九在线精品| 免费国产自线拍一欧美视频| 国产不卡精品在线| 精品五月天堂| 亚洲日本国产| 亚洲精品动态| 久久精选视频| 黄色国产精品| 日本精品另类| 私拍精品福利视频在线一区| 亚洲另类av| 国产精品人人爽人人做我的可爱| 国产日韩三级| 午夜视频精品| 给我免费播放日韩视频| 婷婷五月色综合香五月| 麻豆网站免费在线观看|