react.js - 有没有必要用react的服务端渲染?

查看:89
本文介绍了react.js - 有没有必要用react的服务端渲染?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

背景:笔者很久之前用backbone写过一个博客,但是问题就是所有的内容都是js动态加载的,当时并没有什么办法SEO
最近在用react和react-native做一些小项目,过年这几天有时间想顺便把博客用react重写一遍,打算用服务端渲染来优化SEO

想知道对于js动态加载内容的前端界面,有什么比较好的有利于SEO的方式呢(自己对这方面做得不多,也就是在meta加几个标签,然并卵)

另外react的服务端渲染真的有必要么?因为自己之前用php什么的做页面,那时候也可以算作服务端渲染吧,然而现在js的功能越来越强大了,虽然说服务端渲染也是采用nodejs,但是初步看了一下感觉对于权限控制、跳转路由等还是和不用服务端渲染可能有点不一样,不知道如何权衡

可能问的有点乱,但是只是想听听大家在相关问题上的看法,毕竟自己还比较菜。谢谢。

解决方案

React Native是没办法作服务器渲染的,它是用来作移动端App应用的。你指的应该是React。

服务端渲染是属于另一个应用领域的东西,对React来说,它在Virtual DOM原本就是抽象层的实作,官方有一个有ReactDOMServer这API是用于服务器端渲染之用的。只下只是一些概念性的分享而已,详细实作请网上找找有很多:

服务器渲染的主要目的是为了性能,SEO、提供更好的用户体验(快速回应)等等是从此延伸出的好处。

从服务器加载各种资源,JS文档、图片、CSS文档…各种,都需要再透过客户端执行这些JS代码,以及作HTML的渲染,才能呈现到用户面前,愈大或愈复杂的这些文档,代表此页面在初始化(bootstrap)执行或渲染时性能有可能会愈差,要透过网络传递的数据也愈多。服务器端在送出回应页面前,如果事前作了渲染,因此可以取得较佳的页面加载性能。

但这是需要取得平衡的,因为服务器渲染并不是完全没有代价,在现今服务器技术已经达到相当成熟的市场阶段,服务器上有很多机制可以作,要使用像React的服务器渲染技术,你需要衡量它是否能真的为性能带来一定程度的提升,这成本与花费才算是划算的。

单纯的服务器渲染的性价比可能偏低,通用/同构(Universal或Isomorphic)才能发挥最大效益

在Node.js的服务器渲染这技术很早就有了,React在这领域提供了一种新式的架构概念与选择,也就是通用/同构(Universal或Isomorphic),即在用户端与服务器端都使用React,这首先自然可以得到一个好处,即维护的便利性,同一种框架也代表它是可以共享某部份的代码,在调整客户端与服务器端的功能与代码时,花费成本很低,会很容易作得到。

第二个优势是React的本身有很多特性很合适,它原本就是个视图库,其中Virtual DOM、JSX语法与组件生命周期等等设计,可以在伺服器渲染的应用中,发挥出很好的作用。这也是为什么近日来这一端的应用会这么受到重视的原因。

在愈大型网站愈能发挥出服务器渲染技术的价值

在React应用于服务器渲染的技术领域,这一年多来开始有很多的大应用实例出现,大部份都是在大的网站应用上出现,因为在高流量、庞大用户群的网站上,服务器渲染的改善价值会显得十分高,相信未来会有更多这方面的实例应用出现。

举几个例子来说,国外的例子,下面为这些实例的发表文章:

中文网站市场目前的应该是阿里有在使用,它不久前发表了这个开源项目:

目前较热门的React相关的库是Next.js,你可以参考下面这篇新闻:

这篇关于react.js - 有没有必要用react的服务端渲染?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆