'use client' 加在哪个层级,一直没标准答案。加太靠上,整棵子树都变成客户端组件,RSC 的好处没了;加太靠下,文件爆炸。
我现在的原则:
- 叶子交互组件(按钮、输入框、下拉)单独标
'use client'。 - 容器组件尽量保持 server,把 client 组件当 children 传进去。
- 大表单/复杂交互整体作为一个 client island。
把 client 组件当 children 传,能保住外层的 server 渲染。这个模式很多人不知道。
大家 'use client' 都是怎么标的?