[Typescript]用类属性包装ref,则修改类属性会触发响应式吗?

新手上路,请多包涵
class Foo {
  ref: Ref<number>
  get value() {
    return this.ref?.value
  }
  set value(nv: number) {
    this.ref.value = nv
  }
  constructor() {
    this.ref = ref(0)
  }
}
const foo = new Foo()
<button @click="foo.value++">{{ foo.value }}</button>

在vue3中,以上代码定义一个class Foo,使用类属性value包装了Ref类型的成员ref。在template中,一个button被用于显示并修改Foo实例foo的value的值。请问隔了一层get/set,点击button间接修改ref时,仍能触发响应式以更新视图吗?

答案为能。why?

阅读 653
1 个回答

点击按钮,触发 onClick,运行 foo.value++,调用 setter,运行 this.ref?.value = nv,触发视图更新

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏