- React
- 作用
- 方便模块化开发
- 单独测试
- 方便复用,可以拆成独立的工程,可引用开源组件
- 按需加载,提升渲染效率
- 用法
- useState 获取和修改变量
- useEffect 组件初始化,数据监听,销毁
- useContext 跨组件传递数据,替代prop传参
- React状态不可变性原则
- 状态不可变性原则要求开发者更新状态时,始终通过创建新数据副本完成,而非直接修改原状态
- React通过浅比较新旧状态引用判断是否更新,直接修改原状态会导致渲染失效
- 基础数据类型 不需要额外考虑
- 对象/数组 需要使用新的对象/数组,逐层拷贝
- NextJS
- page 方便路由映射
- layout 方便组件嵌套管理
- 切换页面路由时,布局组件不会重新渲染(除非手动触发),其内部 React 状态(如 useState)、交互性事件(如点击展开的侧边栏)会自动保留。
- 支持局部更新
- 简化静态资源使用
- link组件
- 预加载(Prefetching)
- 客户端导航(Client-Side Navigation)
- image组件
- 服务器渲染
- 支持服务端组件和客户端组件
- 必须客户端
- 适用服务端
- 从接口或者数据库获取数据
- 使用了api key等保密数据或逻辑
- 减少js数据量或者加快首屏展示速度
- RSC Payload(React Server Component Payload)
- 包括 服务端渲染内容,服务端传递给客户端的参数,客户端组件的占位符和位置
- 分块传输机制
- 渐进式内容展示