vue中Mixin混入的基本知识
1.组件中data,methods的优先级高于mixin data,methods的优先级,并且两个一起存在的时候,只会执行组件的data,methods
2.生命周期函数:先执行mixin里面的,后执行组件里面的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="root"></div>
</body>
<script src="https://unpkg.com/vue@next"></script>
<script>
const myMixin = {
data() {
return {
count: 1
}
},
created() {
console.log("我是混入生命周期")
},
methods: {
handelClick() {
console.log("我是混入方法")
}
}
}
const app = Vue.createApp({
data() {
return {
count: 2
}
},
mixins: [myMixin],
created() {
console.log("我是组件生命周期")
},
methods: {
handelClick() {
console.log("我是组件方法")
}
},
template: `
<div v-on:click="handelClick">count:{{count}}</div>
`
});
const vm = app.mount("#root");
//输出结果:
//页面展示:count:2
//console打印顺序:
//我是混入生命周期
//我是组件生命周期
//触发事件:只会执行:我是组件方法
</script>
</html>
子组件中如何混入mixin,则父组件中传入通过props接收的值,将不会显示,只会显示mixin中的值
<child v-bind:count="count" />
app.component("child", {
mixins: [myMixin],
props:["count"],
template: `<div>{{count}}</div>`
})
输出:1,并且控制台报警:Data property "count" is already defined in Props.
app.component("child", {
mixins: [myMixin],
template: `<div>{{count}}</div>`
})
输出:1