使用场景:
mixin:通用逻辑共享:当多个组件需要共享相同的方法,数据和属性时,可以通过mixin实现
extend:如果想基于现有组件创建一个新组件,并且新组件还能继承现有组件的数据,方法和属性时,可以通过extend实现,extend类似于class
使用实例:
mixin部分代码
使用mixin
当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项,因此要了解“混合规则”
(1)针对钩子函数:同名钩子函数不会被覆盖,会合并到一起,并且都被调用,但混入的钩子函数将在组件本身额钩子函数之前被调用
(2)针对对象:例如data,computed,methods等,同样会被合并到一起,如果混入的对象属性名称和组件本身的冲突,最终取组件本身的属性键值对
(3)一个组件可以混入多个mixin对象,当多个混入对象中有属性名冲突时,则后引入的会覆盖前面引入的;但是钩子函数不会被覆盖,仍然全部都被调用,且按混入的先后顺序被调用
钩子函数调用:
extend部分代码:
继承规则:extend和mixin不同,不执行选项的合并或者混合,而是直接覆盖,例如 B组件 继承 A组件,一旦B组件中新增的data数据,computed,method等对象属性和A组件的冲突,则B覆盖A;
钩子函数和mixin一样合并到一起,且extend的钩子函数先被调用
当一个组件中同时使用了extend和mixin时,其优先级为: extend > mixin > 组件本身; 钩子函数也是按这个优先级被调用
标签:混入,vue,函数,extend,钩子,mixin,组件 From: https://www.cnblogs.com/s-w-f/p/18050685