V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skies457
V2EX  ›  前端开发

为什么除 Vue 3 外的主流前端框架不使用 Proxy 来跟踪响应式对象的改变?

  •  
  •   skies457 · 2022-09-30 11:38:27 +08:00 via iPhone · 2519 次点击
    这是一个创建于 810 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近尝试了 svelte ,感觉只靠 assignment 来触发响应式更新有点笨拙,需要一些 a=a 这样的 tricks... 所以为什么不通过 Proxy 来跟踪对象变化呢?

    12 条回复    2022-10-02 10:01:58 +08:00
    lzj724
        1
    lzj724  
       2022-09-30 11:40:38 +08:00
    再写一个 vue3 ?
    noe132
        2
    noe132  
       2022-09-30 11:41:19 +08:00
    react + mobx 就是你所说的了。
    skies457
        3
    skies457  
    OP
       2022-09-30 11:52:36 +08:00 via iPhone
    @noe132 react 的 useEffect 、useMemo 还需要自己指定 dependencies 。。实现组件内部 nested object 的 deep reactivity 总感觉很麻烦
    skies457
        4
    skies457  
    OP
       2022-09-30 11:54:25 +08:00 via iPhone
    @lzj724 svelte 的语法糖写起来还是挺爽的,要是能结合一下就好了(逃
    hewelzei
        5
    hewelzei  
       2022-09-30 12:06:25 +08:00 via Android
    solidjs hook + proxy
    meihuanyu88x
        6
    meihuanyu88x  
       2022-09-30 12:14:07 +08:00 via iPhone
    性能不行
    cyitao
        7
    cyitao  
       2022-09-30 12:23:51 +08:00 via iPhone   ❤️ 3
    proxy 有运行时的损耗,svelte 没有。赋值触发响应式,是为了帮助 svelte 在编译的时候,更好地识别响应式数据。
    XCFOX
        8
    XCFOX  
       2022-09-30 13:21:18 +08:00   ❤️ 3
    React 有 valtio 来使用 Proxy
    https://github.com/pmndrs/valtio
    runze
        9
    runze  
       2022-09-30 13:48:47 +08:00
    zhouyg
        10
    zhouyg  
       2022-09-30 15:06:24 +08:00
    相比基于函数调用,基于 Proxy 多了一层访问代理成本,而且这个成本在运行前就会产生,不能 lazy
    zzl22100048
        11
    zzl22100048  
       2022-09-30 21:04:49 +08:00 via iPhone
    看一下 solidjs
    cjydawn
        12
    cjydawn  
       2022-10-02 10:01:58 +08:00 via iPhone
    看看 preact 新出的 signals ?
    https://preactjs.com/blog/introducing-signals/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3177 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:37 · PVG 08:37 · LAX 16:37 · JFK 19:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.