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
		}
	},
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值