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

您的位置:首頁技術(shù)文章
文章詳情頁

詳解Vue的mixin策略

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

我之前一直以為mixin的合并是以組件內(nèi)的優(yōu)先,即mixin的內(nèi)容如果和組件內(nèi)有沖突的,以組件內(nèi)為準(zhǔn),確實(shí)存在這種情況,但是vue指定的策略更詳細(xì),下面分別記錄各種情況對應(yīng)的合并策略

基本

當(dāng)一個(gè)組件使用mixin的時(shí)候,所有mixin的選項(xiàng)會被混入到組件自己的選項(xiàng)中, 這部分沒什么好說的,直接看代碼

// 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!'

選項(xiàng)的合并策略

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

像data,methods,components,directives這樣的會被合并進(jìn)同一個(gè)對象中,并且遇到?jīng)_突項(xiàng)以組件的為準(zhǔn)

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'

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

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'

全局混入和自定義選項(xiàng)

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!'

上述代碼,我們在全局創(chuàng)建了一個(gè)自定義選項(xiàng),然后進(jìn)行了全局混入處理,但是需要注意的是,這會影響到這個(gè)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!'

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

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

合并策略接收兩個(gè)參數(shù),分別是指定項(xiàng)在父實(shí)例和子實(shí)例的值,當(dāng)使用mixin的時(shí)候我們可以查看打印什么:

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打印。

注意事項(xiàng)

mixin很容易造成沖突,你得確保不會有沖突的屬性名,來避免沖突,這會造成額外的負(fù)擔(dān) 復(fù)用性有限,因?yàn)閙ixin不能接受參數(shù),所以邏輯是寫定的,不靈活

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

以上就是詳解Vue的mixin策略的詳細(xì)內(nèi)容,更多關(guān)于Vue的mixin策略的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
97精品中文字幕| 日本欧美韩国一区三区| 国产精品**亚洲精品| 欧美国产日韩电影| 国产一区二区三区天码| 人人草在线视频| 欧美不卡高清| 亚洲精品免费观看| 欧美极品中文字幕| 欧美1级日本1级| 88久久精品| 午夜精品成人av| 亚洲一区二区网站| 国产精品最新| 久久婷婷亚洲| 亚洲午夜免费| 国产免费av一区二区三区| 精品午夜av| 国产一区久久| 国产一卡不卡| 欧美精选视频一区二区| 久久国产99| 国产精品分类| 免费视频一区三区| 欧美日韩一区二区高清| 免费福利视频一区二区三区| 水蜜桃久久夜色精品一区的特点| 蜜桃久久久久| 黑丝一区二区三区| 国产精品网站在线看| 国产一区日韩欧美| 天堂va欧美ⅴa亚洲va一国产| 久久天堂影院| 日韩一区精品字幕| 久久精品一区| 在线免费观看亚洲| 97精品国产福利一区二区三区| 在线精品亚洲| 日韩在线综合| 国产一级成人av| 欧美日韩国产一区精品一区| 国产日韩精品视频一区二区三区| 亚洲午夜av| 成人午夜毛片| 日韩国产91| 99日韩精品| 久久伊人久久| 日韩和欧美一区二区| 99久久夜色精品国产亚洲狼| 久久国产精品免费精品3p | 国产精品乱战久久久| 色天使综合视频| 国产免费久久| 亚洲色图综合| 精品一区在线| 涩涩av在线| 国产精品xxx在线观看| 波多野结衣一区| 日韩免费久久| 免费看久久久| 国产日韩一区二区三区在线播放| 久久aⅴ国产紧身牛仔裤| 99精品国产一区二区三区| 精品国产一区二区三区噜噜噜| 视频一区二区中文字幕| 99精品在线观看| 欧美日韩免费观看视频| 免费一区二区三区在线视频| 日本国产欧美| 亚洲精品系列| 丝袜亚洲另类欧美| 国产精品毛片一区二区三区| 亚洲天堂免费电影| 久久uomeier| a国产在线视频| 国产在线一区不卡| 精品网站999| 久久精品亚洲一区二区| 欧美一级一区| 人人爱人人干婷婷丁香亚洲| 亚洲精品动态| 日本不卡视频一二三区| 亚洲永久精品唐人导航网址| 丝瓜av网站精品一区二区| 久久高清一区| 中文字幕日韩亚洲| 在线观看亚洲精品福利片| 激情欧美一区二区三区| 久久久久国产精品一区三寸| 鲁鲁在线中文| 欧美freesex黑人又粗又大| 日韩欧美在线中字| 亚洲www啪成人一区二区| 久久要要av| 亚洲在线国产日韩欧美| 亚洲欧美激情诱惑| 亚洲精选av| 日本成人一区二区| 国产亚洲久久| 精品中国亚洲| 青青久久av| 欧美精品自拍| 六月丁香综合| 日韩国产欧美三级| 免费在线欧美黄色| 日韩免费看片| 亚洲免费高清| 亚洲综合色婷婷在线观看| 日韩激情一二三区| 久久久久九九精品影院| 亚洲成a人片| 水野朝阳av一区二区三区| 日韩国产一二三区| 国产一区二区三区四区五区| 日韩电影免费网址| 国产偷自视频区视频一区二区| 亚洲男人在线| 国产欧美高清| 国产一区一一区高清不卡| 亚洲伦乱视频| 免费欧美在线视频| 国产精品观看| 久久精品123| 亚洲久久一区| 超碰在线99| 免费人成黄页网站在线一区二区| 久久国产尿小便嘘嘘| 天堂√8在线中文| 久久午夜影视| 欧美国产不卡| 久久精品免费一区二区三区| 免费成人在线视频观看| 日韩成人午夜精品| 天堂√中文最新版在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 美女尤物国产一区| 欧美精品一区二区三区精品| 国产午夜一区| 日韩午夜一区| 日本久久黄色| 伊人久久亚洲| 欧美好骚综合网| 免费欧美在线视频| 激情综合婷婷| 亚洲精品少妇| 韩国精品主播一区二区在线观看| 亚洲精品女人| 成人午夜在线| 美国欧美日韩国产在线播放| 精品国产午夜| 亚洲综合婷婷| 91精品精品| 免费日韩一区二区三区| 日本 国产 欧美色综合| 日韩欧美二区| 国产精品99久久久久久董美香| 欧美日韩国产一区精品一区| 欧美韩一区二区| 亚洲天堂av资源在线观看| 特黄毛片在线观看| 日韩成人av影视| 欧美日韩在线观看视频小说| 久久狠狠久久| 亚洲综合丁香| 欧美亚洲国产激情| 国产一区二区三区日韩精品| 日韩精品一区二区三区中文在线| 欧美日韩在线观看视频小说| 精品视频一区二区三区在线观看 | 鲁大师成人一区二区三区| 国产成人精品亚洲线观看| 中文无码日韩欧| 亚洲激情精品| 久久久一二三| caoporn视频在线| 国产精品久久久免费| 中文字幕视频精品一区二区三区| 久久一级电影| 色网在线免费观看| 国产成人免费| 麻豆精品久久久| 国产日韩一区二区三免费高清| 爽好久久久欧美精品| 激情婷婷欧美| 日韩精品麻豆| 日韩伦理福利| 精品亚洲成人| 老色鬼精品视频在线观看播放| 7777精品| 日韩激情av在线| 在线观看一区| 中文字幕一区二区三区在线视频| 99re国产精品| 久久电影一区| 石原莉奈在线亚洲三区| 精品91久久久久| 午夜电影亚洲| 免费视频久久| 亚洲九九精品| 青青草国产成人99久久|