Next.js 渲染机制:服务端组件、客户端组件、混合模式

2025-03-26  本文已影响0人  VIAE

服务端组件(Server Components)

next服务端渲染有三种不同的服务器渲染策略:

优点:

缺点:

服务端组件渲染 vs 传统的服务端渲染SSR (Server-Side Rendering) 的区别:

客户端组件(Client Components)

常见的有:react、vue、angular 框架打包出来的内容。
一个空<div>的html文件为入口,下载引入js文件,页面渲染由浏览器解析执行js文件来完成。

在Next.js中,默认是服务端渲染,如果需要使用客户端渲染,需要在页面文件的顶部使用"use client"声明服务器组件和客户端组件模块之间的边界,且所有导入到该文件中的其他模块(包括子组件)都被视为客户端包的一部分。
在Next.js中,客户端组件的渲染方式会根据请求类型分为两种方式:

这意味着客户端组件 JavaScript bundle 会被下载和解析。一旦 bundle 准备就绪,React 将使用 RSC Payload 来协调客户端和服务端组件树,并更新 DOM

优点:

缺点:

客户端组件 vs 传统客户端渲染CSR(Client-side Rendering):

混合模式

服务端组件与客户端组件比对.png
Next.js v13以上版本支持混合模式:交错使用客户端和服务器组件
根布局(服务器组件)开始,可以通过添加 "use client" 指令在客户端上渲染组件的某些子树。在这些客户端子树中,仍然可以嵌套服务器组件或调用服务器操作

混合模式注意事项:

参考文档:
nextjs 渲染机制
掌握 Next.js 渲染机制:如何在 CSR、SSR、SSG 和 ISR 中做出最佳选择
React Server Components vs Server-Side Rendering
react hydrateRoot

上一篇 下一篇

猜你喜欢

热点阅读