next export生成的静态应用与直接使用React有什么区别?
next export 和原生React开发的核心差异 - 渲染逻辑不同:我们平时直接用React开发(比如通过Create React App初始化的项目)默认走的是客户端渲染(CSR),打包出来的HTML只是个带根节点的空壳,所有页面内容都要等浏览器下载完JS、执行完才会生成。而
next export走的是Next.js的静态站点生成(SSG)能力,会在你打包构建的时候就把每个页面的完整HTML内容渲染好,浏览器拿到HTML就能直接展示完整内容,不需要等JS执行。 - 内置能力不同:Next.js就算是用
next export导出静态站点,也能用到它原生封装的很多能力,比如基于文件的自动路由、自动代码分割、静态资源优化、路由预加载等等,不用你自己手动安装React Router、调整webpack打包规则做拆包这些配置。原生React要实现这些能力,都需要自己额外装依赖、改配置。 - 产物结构不同:原生React默认打包出来只有一个入口HTML文件,所有路由都靠前端路由跳转,如果你要直接访问子路由,还得给静态托管服务配重定向规则。而
next export会给每个路由生成独立的HTML文件,比如访问/about路由对应的就是/about/index.html,不用额外配托管规则就能直接访问子路由。
next export 做SEO是否比原生React更有优势 答案是肯定的,优势非常明显:
- 现在大部分搜索引擎的爬虫,要么不支持执行JS,要么给JS执行的资源配额很低、不会等页面JS完全执行完再抓取内容。原生React做的CSR应用,爬虫拿到的是空HTML,根本读不到页面的实际内容,自然很难有好的收录排名。而
next export生成的HTML自带完整的页面内容、标题、meta标签等SEO相关信息,爬虫不用执行JS就能直接抓取到全部内容,收录效果好很多。 - 另外
next export生成的多HTML结构,也更方便搜索引擎对站点的不同页面做独立收录,比原生React单页应用的收录效率高很多。
内容的提问来源于stack exchange,提问作者user16401944
相关产品推荐
相关产品推荐

