什么是 mixins(混入)?
可以在不同组件中复用代码
混入对象可以使用组件的任何属性,当组件使用mixin时,这个mixins的所有信息将被混入该组件里。该组件可以直接访问, 相当于扩展了父组件的对象与方法。
举栗子:
项目有多个页面都有导出功能,在mixins写一个导出的公共方法,接收一个导出地址参数,在页面中调用即可。
特点:
方法和参数在各组件中不共享
- 值为对象的选项(methods、components …)中,mixins里的属性与组件中的属性命名冲突,mixins的会被组件的覆盖,最终使用的是组件里的
- 值为函数的选项(created、mounted …)中,mixins的钩子函数优先于组件的钩子函数,同一个钩子函数里,会优先使用mixins的,再使用组件的
与vuex的区别
vuex:定义的变量和方法,供每个组件使用和修改,在任一组件中修改数据,其他组件中的数据也会随之修改
mixins:定义的变量和方法,供所有组件使用,引入组件中的,数据是独立的,值的修改在组件中互不影响
在页面中调用
- 导入mixin文件, 通过 mixins[‘文件名’] 使用
<script>
import MixinItem from './mixin'
export default {
mixins: [ MixinItem ]
}
</script>