p67 mixin 混入/混合:两个组件共享一个配置
p67 mixin 混入/混合:两个组件共享一个配置
-
一定是先引入、再配置进去、使用的
school
<template>
<div>
<!-- showname在混合当中 -->
<h2 @click="showName">学校名称:{
{
name }}</h2>
<h2>学校地址:{
{
address }}</h2>
</div>
</template>
<script>
//引入一个hunhe
// 局部混合:在此引入混合
// import { hunhe, hunhe2 } from ../mixin
export default {
name: School,
data() {
return {
name: 尚硅谷,
address: 北京,
x: 666 //以data中的x为准,混合中再有这个变量就不起作用
}
},
mounted() {
console.log(nihaoa)
},
// 局部混合:在此配置混合。要是很多文件有需要引入混合,那100个文件都要写一遍吗?那肯定不是->引出全局混合
// mixins: [hunhe, hunhe2],
}
</script>
student
<template>
<div>
<h2 @click="showName">学生姓名:{
{
name }}</h2>
<h2>学生性别:{
{
sex }}</h2>
</div>
</template>
<script>
// import { hunhe, hunhe2 } from ../mixin
export default {
name: Student,
data() {
return {
name: 张三,
sex: 男
}
},
// hunhe有的、hunhe2有的 内容会组合到一块给这个组件用(此处为局部混合)
// mixins: [hunhe, hunhe2]
}
</script>
App.vue
<template>
<div>
<School/>
<hr>
<Student/>
</div>
</template>
<script>
import School from ./components/School
import Student from ./components/Student
export default {
name:App,
components:{
School,Student}
}
</script>
main.js
import Vue from vue
import App from ./App.vue
import {
hunhe, hunhe2} from ./mixin //引用
Vue.config.productionTip = false
Vue.mixin(hunhe) //配置
Vue.mixin(hunhe2)
// 放在全局上,会输出四次你好啊,vm上面有,3个vc上面有
new Vue({
el:#app,
render: h => h(App)
})
mixin.js(名称可以改变)
// 要把配置交出去,用export,不然别人没法引入
// 分别暴露:引入的时候就得 import {hunhe} from ...
export const hunhe = {
methods: {
showName(){
alert(this.name)
}
},
mounted() {
console.log(你好啊!)
},
}
export const hunhe2 = {
data() {
return {
x:100,
y:200
}
},
}
