13. mixin(混入)
功能: 可以把多个组件公用的配置提取成一个混入对象
使用方式:
- 第一步第一混入,例如:
{
data(){......},
methods:{......},
......
}
第二步使用混入,例如:
- 全局混入: Vue.mixin(xxx)
- 局部混入: mixins:[xxx,xxx]
School.vue
<template>
<div>
<h2 @click="showName">学校名称: {{ name }}</h2>
<h2>学校地址: {{ address }}</h2>
</div>
</template>
<script>
// import mixin from "@/mixin";
// import {a,b} from "@/mixin";
export default {
name: "Student",
data() {
return {
name: "南方IT",
address: '广东'
}
},
//局部
// mixins:[mixin,a,b]
}
</script>
<style scoped>
</style>
Student.vue
<template>
<div>
<h2 @click="showName">学生姓名: {{ name }}</h2>
<h2>学生性别: {{ sex }}</h2>
</div>
</template>
<script>
// import mixin from "@/mixin";
// import {a,b} from "@/mixin";
export default {
name: "Student",
data() {
return {
name: "呓语",
sex: '男',
x:999
}
},
//局部
// mixins:[mixin,a,b]
}
</script>
<style scoped>
</style>
mixin.js
export default {
methods:{
showName(){
alert(this.name)
}
}
}
export const a={
mounted(){
console.log("你好啊!!!")
}
}
export const b={
data(){
return{
x:200,
y:1000
}
}
}
main.js
//引入Vue
import Vue from 'vue'
//引入App组件
import App from './App'
//引入mixin
import mixin from "@/mixin";
import {a,b} from "@/mixin";
//关闭Vue的生产提示
Vue.config.productionTip=false
//全局混入
Vue.mixin(mixin)
Vue.mixin(a)
Vue.mixin(b)
new Vue({
el:"#app",
render:h=>h(App)
})