vue 的 computed 里面的函数为什么要绑定成 property,而不是绑定成 method

2022-03-08 22:28:35 +08:00
 git00ll

绑定到 property 的话,使用时不要加括号,但是在定义 computed 时是函数。 绑定成 method 不是更清晰吗?我觉得绑定成 method 也是能实现缓存计算的。 难道是作者的个人风格

1720 次点击
所在节点    Vue.js
4 条回复
cxe2v
2022-03-08 22:38:49 +08:00
computed 里的属性都有数据绑定,在数据变更时,对应的 computed 属性也会收到更新通知并发出自己的更新通知,

method 里的方法不会在使用的数据有更新时,主动更新自己的结果
rabbbit
2022-03-08 22:50:41 +08:00
computed 里的函数其实是个 getter
也可以这么写:

{
  computed: {
   bar: {
    get() {
     return this.foo
   },
    set(value) {
     this.foo = value
   }
  }
 },
}

想作为函数调用也行,可以这么写:
{
  computed: {
   bar: {
    get() {
     return () => {
      return this.foo + 1;
    };
   },
  },
 },
}
waiaan
2022-03-09 09:05:06 +08:00
只是为了区分开吧,有的需要监听,有的不需要监听。
faceRollingKB
2022-03-09 14:08:10 +08:00
computed 本身就是为了扩展 data ,设计成 property 是最合适的,跟 method 没什么关系;而且要是调方法也有缓存,你 debugger 的时候岂不是心里一万个草泥马么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838970

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX