#误区 1:把 Qwik 当成“换皮 React”
如果你上来就想:
useEffect在哪- 客户端什么时候整树重跑
- 我怎么把所有逻辑都挂到浏览器里
那基本会把 Qwik 用歪。
Qwik 的第一原则不是“尽快让浏览器接管一切”,而是:
尽量别让浏览器提前做无意义工作。
#误区 2:滥用 useVisibleTask$
useVisibleTask$ 适合浏览器可见后再跑的逻辑,比如:
- 读
window - 启动第三方浏览器库
- 开动画、轮播、地图
但它不是默认解法。
如果你把所有逻辑都塞进去,本质上是在主动削弱 resumability。
#误区 3:routeLoader$ 和 routeAction$ 不分家
记住这条:
routeLoader$:读routeAction$:写
不要拿 loader 去做副作用写入,也不要把首屏读取全塞进 action。
#误区 4:以为 Qwik City = “零业务 JS”
Qwik City 官方说的是:元框架本身不会额外强迫你付出启动成本。
这不等于:
- 你的网站永远零 JS
- 你的交互逻辑不需要 JS
- 有复杂组件时不会下客户端代码
真正准确的理解是:
需要多少交互,就为多少交互付费,而不是先整城开机。
#误区 5:忽视序列化边界
Qwik 依赖可恢复、可序列化的状态恢复线索。
所以你要对这些问题敏感:
- 这个状态能不能序列化?
- 这个对象是否适合放进可恢复状态里?
- 这段闭包是不是应该交给
$系统切分?
别一边追求 resumability,一边把状态搞成不可恢复黑箱。