vue的混入mixins
定义
官方定义:混入(mixins)提供了一种非常灵活的方式,来分发Vue组件中可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
但是根据我自己的理解,我觉得mixins就是将vue的组件中的js部分提取出来,把各个组件中共用的数据(包括:data,methods,各种生命周期钩子函数等,只要你能在组件中操作的js都可以放在mixins中)统一放在一个文件中集中处理。
用法
创建mixin.js文件
1 | var mixin = { |
局部混入
在需要用到的页面中引入该文件:
1 | import mixin from 'xxx/xxx/mixin' |
当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。生命周期中是先调用混入的再调用当前组件的,如果存在同名的数据则以当前组件中定义的数据为主。
全局混入
在main.js文件中:
1 | import mixin from 'xxx/xxx/mixin' |
注意:全局混入会影响之后创建的每一个vue实例,需要谨慎使用。
Vue的插槽slot
单个slot
子组件中写入slot标签,父组件在引用时在相应的子组件中写入要显示在插槽中的元素内容,同时还可以在插槽中填写默认内容。代码如下:
parent.vue
1 | <template> |
child.vue
1 | <template> |
具名插槽
parent.vue
1 | <template> |
child.vue
1 | <template> |
作用域插槽
我认为作用域插槽即可以在插槽中传入参数
parent.vue
1 | <template> |
child.vue
1 | <template> |
vue中默认将slot-scope的插槽对象命名为slotProps,也可以自定义名称,slotProps中得到的时候所有slot中的数据。