组件
<template> <div> <div>{{val}}</div> <el-button type="success" @click="getClick">点击</el-button> </div> </template> <script> import mixins from '@/mixins/mixins' export default { mixins:[mixins], data(){ return { val:'组件中的data值优先' } }, created(){ console.log('组件里的created后执行'); console.log(this.val); }, methods:{ getClick(){ console.log('方法组件') } } } </script>
mixins文件
export default { data() { return{ val:'mixins值' } }, components:{ }, created(){ console.log('mixins中的created先执行') console.log(this.val) }, methods:{ getClick(){ console.log('方法mixins优先点击成功') } } }
当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。
一、数据对象内 (data里的数据)
mixin的数据对象和组件的数据发生冲突时以组件数据优先。
二、钩子函数 (created,mounted)
同名钩子函数将会混合为一个数组,都将被调用到,但是混入对象的钩子将在组件自身钩子之前调用。
三、值为对象的选项
值为对象的选项,例如 methods
, components
和 directives
,将被混合为同一个对象。两个对象键名冲突时,取组件对象的键值对。(调用组件的方法)