2.写在mixin.js
const mixin= {
data() {
return {
name: '初始名字:张三',
mixinMsg: 'mixinMsg'
};
},
methods: {
// 获取mixin中的msg
getMixinMsg() {
alert(
'我是mixin.js中的getmsg方法,mixinmsg的数据是' + this.mixinMsg
);
},
// 获取home中的homeMsg
getHomeMsg() {
alert(
'我是mixin.js中的getHomeMsg方法,HomeMsg的数据是' + this.homeMsg
);
}
},
created() {
alert('在mixin中vue的data、生命周期、方法等都可以使用');
}
};
export default mixin;
- 写在home.vue中
<template>
<transition name="fade">
<div class="wrap">
<h1>Home页面</h1>
<h3 @click="goRule">跳转路由</h3>
<!--主要内容-->
<div class="content">
<div @click="getMixinData">1.获取mixin中的name</div>
<div @click="test">2.调用mixin.js中的getMixinMsg方法</div>
<div @click="getHomeMsg">3.获取home.vue中的homeMsg</div>
<div @click="changeMixinMsg">4.改变mixin中的name</div>
</div>
</div>
</transition>
</template>
<script>
import mixin from '../js/mixin';
export default {
mixins: [mixin],
data() {
return {
homeMsg: 'homeMsg'
};
},
methods: {
getMixinData() {
alert('mixin中的name为:' + this.name);
},
test() {
this.getMixinMsg();
},
changeMixinMsg() {
this.name = '李老二';
alert('mixin中的name改变为:' + this.name);
},
goRule() {
this.$router.push('/rule');
}
},
created() {}
};
</script>
<style lang="less" scoped>
img {
opacity: 0;
}
.wrap {
// background-color: white;
.content {
div {
height: 1rem;
// width: 1rem;
background-color: aqua;
margin-top: 0.4rem;
text-align: center;
line-height: 1rem;
}
}
}
</style>