如您在本示例中看到的,我有一个带有value数据的全局mixin 和对该数据的观察者:
Vue.mixin({
data() {
return {
value: 'test',
mixinWatcher: false,
};
},
watch: {
value: {
handler() {
console.log('mixin');
this.mixinWatcher = true;
},
immediate: true,
},
},
});
Run Code Online (Sandbox Code Playgroud)
我也有两个组成部分:
NoMergeComponent没有任何观察者。我希望该组件使用默认的观察程序。MergeComponent 那应该覆盖默认的观察者。是否有可能覆盖mixin的监视程序,还是我应该找到另一种方法,例如手动删除监视程序?
我还认为我可以通过将方法绑定到观察程序来解决此问题,并重写此方法而不是整个监视程序。
我基本上在观察器中调用了另一个方法,当我想重写此方法时,我可以简单地让Vue.js进行合并:
这是我的mixin:
Vue.mixin({
data() {
return {
value: 'test',
mixinWatcher: false,
};
},
watch: {
value: {
handler() {
this.valueWatcher();
},
immediate: true,
},
},
methods: {
valueWatcher() {
console.log('mixin');
this.mixinWatcher = true;
}
},
});
Run Code Online (Sandbox Code Playgroud)
以及需要覆盖观察者方法的组件:
const MergeComponent = {
template: '#test-component-template',
methods: {
valueWatcher() {
console.log('component');
},
},
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |