Vue中的mixins 混合 使用方法

2021-08-09 09:33:17 字數 2004 閱讀 6088

混合 (mixins) 是一種分發 vue 元件中可復用功能的非常靈活的方式。混合物件可以包含任意元件選項。以元件使用混合物件時,所有混合物件的選項將被混入該元件本身的選項。

例子:

// 定義乙個混合物件

var mymixin = ,

methods:

}

}

// 定義乙個使用混合物件的元件

var component = vue.extend()

var component =

new component()

// => "hello from mixin!"

當元件和混合物件含有同名選項時,這些選項將以恰當的方式混合。比如,同名鉤子函式將混合為乙個陣列,因此都將被呼叫。另外,混合物件的 鉤子將在元件自身鉤子 之前 呼叫 :

var mixin = 

}

new vue(

})

// => "混合物件的鉤子被呼叫"

// => "元件鉤子被呼叫"

值為物件的選項,例如methods,componentsdirectives,將被混合為同乙個物件。兩個物件鍵名衝突時,取元件物件的鍵值對。

var mixin = ,

conflicting:

function ()

}

}

var vm =

new vue(,

conflicting:

function ()

}

})

vm.foo()

// => "foo"

vm.bar()

// => "bar"

vm.conflicting()

// => "from self"

注意:vue.extend()也使用同樣的策略進行合併。

也可以全域性註冊混合物件。注意使用! 一旦使用全域性混合物件,將會影響到 所有 之後建立的 vue 例項。使用恰當時,可以為自定義物件注入處理邏輯。

// 為自定義的選項 'myoption' 注入乙個處理器。

vue.mixin(

}

})

new vue()

// => "hello!"

謹慎使用全域性混合物件,因為會影響到每個單獨建立的 vue 例項 (包括第三方模板)。大多數情況下,只應當應用於自定義選項,就像上面示例一樣。也可以將其用作 plugins 以避免產生重複應用

自定義選項將使用預設策略,即簡單地覆蓋已有值。如果想讓自定義選項以自定義邏輯合併,可以向vue.config.optionmergestrategies新增乙個函式:

vue.config.optionmergestrategies.myoption = 

function (toval, fromval)

對於大多數物件選項,可以使用methods的合併策略:

var strategies = vue.config.optionmergestrategies

strategies.myoption = strategies.methods

更多高階的例子可以在 vuex 的 1.x 混合策略裡找到:

const merge = vue.config.optionmergestrategies.computed

vue.config.optionmergestrategies.vuex =

function (toval, fromval)

}

vue的混合mixins學習

混合 mixins 是一種分發 vue 元件中可復用功能的非常靈活的方式。混合物件可以包含任意元件選項。當元件使用混合物件時,所有混合物件的選項將被混入該元件本身的選項。新建乙個 base.js 檔案用於定義混合物件 base.js export const mixin methods confli...

vue中mixins的使用

一 來自官網的描述 混入 mixins 是一種分發 vue 元件中可復用功能的非常靈活的方式。混入物件可以包含任意元件選項。當元件使用混入物件時,所有混入物件的選項將被混入該元件本身的選項。在vue元件內,如果想將一些公共功能,如元件 方法 鉤子函式等復用,混入是乙個很好的選擇。下面簡單介紹一下混入...

scss混合 mixins 使用

可參考 sass詳解之混合 mixins 例 一 使用混合mixins中的變數來定義乙個n行文字溢位隱藏的公用樣式。1 建立mixins.scss檔案 文字n行溢位隱藏 mixin ellipsisbasic clamp 2 以上 中,clamp是變數,決定最多顯示幾行文字,預設是顯示2行,呼叫的時...