简略介绍
- 能够把多个组件共有的数据,办法,提取成一个混合文件
- data中数据本人和混合文件都有时,以本人的数据为主
- 生命周期还有办法这些都是独立的
全局混合
// 这样引入所有的页面,组件都会应用这个混合import mixin from './components/mixin/mixin'Vue.mixin(mixin)
部分混合
// 罕用援用形式// mixin.jsexport default { data() { return { mixData: '这是mixin中数据', x: 100, } }, created () { console.log(this.y) }, methods: { handleClick() { console.log(this.name) } }, computed: { showNumber() { return this.x + this.y } }}// 两个须要援用混合的组件// Student.vue<template> <div> <h1>{{ msg }}</h1> <div @click="handleClick">姓名:{{name}}</div> <div>年龄:{{age}}</div> <div>数字:{{showNumber}}</div> </div></template><script>import mixin from './mixin/mixin'export default { name: 'Student', data () { return { msg: 'Welcome', y: 100 } }, mixins: [mixin], props: { name: { type: String, requried: true }, age: { type: Number, default: 18 } }, created () { console.log(this.mixData) }}</script>// School.vue<template> <div> <h1>{{ msg }}</h1> <div @click="handleClick">姓名:{{name}}</div> <div>地址:{{address}}</div> <div>数字:{{showNumber}}</div> </div></template><script>import mixin from './mixin/mixin'export default { name: 'Student', data () { return { msg: 'Welcome', y: 200 } }, mixins: [mixin], props: { name: { type: String, requried: true }, address: { type: String, requried: true } }, created () { console.log(this.mixData) }}</script>