关于 React Server Components 和 Context 的矛盾?-灵析社区

小青梅

首先需要说明一点:并不是所有被使用 `"use client"` 的 `Context.Provider` 包裹的子组件都会渲染成 `RSC(React Server Components)`,而是只有消费 `Context`(使用了 `useContext(Context)` )的子组件才会被渲染成为 `RSC`。如下图所示: ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/e1f26235a0add8b9049b302e40ab056b.png) 然后我个人认为 `nextjs` 这种处理方式其实十分合理,因为组件消费 `Context` 的行为本身就表明这个组件是有状态的,不应该也不能被静态渲染成服务端组件。这种处理方式既保留了 `RSC` 的静态渲染的优点,同时也提供了客户端组件消费 `Context` 状态的能力。 希望我的回答对题主有所帮助~

阅读量:1

点赞量:0

问AI