Svelte 5 迁移后的意外问题:性能提升背后的代价
2025-02-18

作者升级Web应用到Svelte 5后,遇到了几个意想不到的问题。Svelte 5为了提升性能引入了“深度响应式”,使用了代理和隐式组件生命周期状态。虽然看起来更简洁,但实际上引入了更多抽象,导致开发者需要记住更多复杂的规则才能正确使用,例如代理不是对象,组件也不是函数。作者举例说明了在使用代理和回调函数时遇到的问题,例如`DataCloneError`和组件卸载后回调函数中prop值变为undefined的情况。作者认为Svelte 5牺牲了开发者的自主性,增加了认知负担,最终放弃了在新的项目中使用Svelte。