vue mixin 学习笔记

2019-08-28  本文已影响0人  Sunshine_0676

基础

混入(mixin)提供了一种非常灵活的方式,来分发Vue组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组建本身的选项。


选项合并

当组件和混入对象含有同名选项是,这些选项将以恰当的方式进行‘合并’。

比如: 数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

同名钩子函数将合并为一个数组,因此都将被调用,另外,混入的钩子将在组件自身钩子之前调用。

值为对象的选项,例如 methods,components 和directives, 将被合并为同一个对象,两个对象键名冲突时,取组件的键值对。

注意:Vue.extend()也使用同样的策略。


全局混入

混入也可以进行全局注册。使用时要格外小心,一旦使用全局混入,他将影响每一个之后创建的Vue实例。使用恰当是,这可以用来为自定义选项注入处理逻辑。(自定义选项)



自定义选项合并策略

自定义选项将使用默认策略,即简单地覆盖已有值。如果想让自定义选项已自定义逻辑合并,可以向Vue.config.optionMergeStrategies添加一个函数:Vue.config.iotionMergeStrategies.myOption(自定义选项名) = function(toVal, fromVal) { // 返回合并后的值 }

对于多数值为对象的选项,也已使用与methods相同的合并策略:

var strategies = Vue.config.optionMergeStrategies

strategies.myOption(自定义选项名) = strategies.methods

上一篇 下一篇

猜你喜欢

热点阅读