【发布时间】:2018-09-11 01:18:58
【问题描述】:
我正在尝试将 vuejs 中的计算属性关联到 es6 类。 我的 Vue 实例如下所示:
...
props: ['customClass'],
computed: {
localClass: {
get() {
return this.customClass
},
set (value) {
console.log("changed")
}
}
}
...
我的班级是这样的
class CustomClass {
constructor () {
this.selected = false
}
}
如果我尝试做这样的事情:
this.localClass.selected = true
但是 setter 永远不会被调用,就像失去了反应性一样,我不明白为什么。
我也试试:
Vue.set(this.localClass, 'selected', true)
我将 customClass 作为道具传递,但即使直接在组件中创建新实例也不会改变结果。
在 vuejs 文档中,我不记得有一节讨论过 es6 类中的反应性问题,所以我想知道是否有人知道为什么以及如何使我的类具有反应性。
提前致谢
【问题讨论】:
-
您没有设置
localClass,这会激活setter,您设置的是localClass的成员,但不会。
标签: javascript vue.js ecmascript-6 es6-class vue-reactivity