V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
git00ll
V2EX  ›  Vue.js

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

  •  
  •   git00ll · 202 天前 · 1309 次点击
    这是一个创建于 202 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2022-03-09 14:08:10 +08:00
    cxe2v
        1
    cxe2v  
       202 天前
    computed 里的属性都有数据绑定,在数据变更时,对应的 computed 属性也会收到更新通知并发出自己的更新通知,

    method 里的方法不会在使用的数据有更新时,主动更新自己的结果
    rabbbit
        2
    rabbbit  
       202 天前
    computed 里的函数其实是个 getter
    也可以这么写:

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

    想作为函数调用也行,可以这么写:
    {
      computed: {
       bar: {
        get() {
         return () => {
          return this.foo + 1;
        };
       },
      },
     },
    }
    waiaan
        3
    waiaan  
       202 天前
    只是为了区分开吧,有的需要监听,有的不需要监听。
    faceRollingKB
        4
    faceRollingKB  
       202 天前
    computed 本身就是为了扩展 data ,设计成 property 是最合适的,跟 method 没什么关系;而且要是调方法也有缓存,你 debugger 的时候岂不是心里一万个草泥马么?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3097 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 10:53 · PVG 18:53 · LAX 03:53 · JFK 06:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.