<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app1">
<h1>{{msg}}</h1>
<h1>{{this.$options.age}}</h1>
</div>
<p>----------------------------</p>
<div id="app2">
<h1>{{msg}}</h1>
</div>
<script src="js/vue.3.2.2.js"></script>
<script>
//定义一个mixin对象
const myMixin = {
data(){//定义数据
return {
msg:'你好!'
}
},
methods:{
hello(){
console.log("hello");
}
},
mounted(){
console.log("mounted");
},
age:100
};
// 1、创建Vue的实例对象
const app1 = Vue.createApp({
data(){//定义数据
return {
msg:'你好1!'
}
},
methods:{
hello(){
console.log("hello1");
}
},
mixins:[myMixin],
age:99,
mounted(){
console.log("mounted1"+this.$options);
}
});
//通过配置决定使用哪个属性
app1.config.optionMergeStrategies.age = (mixinVal,appValue)=>{
return mixinVal || appValue;
}
app1.mount('#app1');
const app2 = Vue.createApp({
// mixins:[myMixin]
});
app2.mixin({
data(){//定义数据
return {
msg:'你好2!'
}
},
methods:{
hello(){
console.log("hello");
}
},
mounted(){
console.log("mounted");
},
age:100
});
app2.mount('#app2');
</script>
</body>
</html>