React同构漫谈

作者:Jiang, Jilin


同构指的是相同代码可以同时在客户端与服务端同时渲染的技术,利用服务器资源对用户请求进行预渲染,而客户端仍然保持SPA特性。本文将从实际项目出发,谈谈开发过程中遇到的问题以及解决方案。

 

在开始阅读本文之前,你需要有一定的react同构基本概念。如果尚未接触过同构,建议先参考一些相关的同构项目:

·        https://github.com/RickWong/react-isomorphic-starterkit

·        https://github.com/kriasoft/react-starter-kit

 

React同构主要分成以下几个步骤:

·        服务端将请求交由React Router解析

·        React Router生成页面布局

·        服务端将生成结果文本化返回给客户端

·        客户端由React Router生成页面布局

·        React将其与服务端布局进行对比

·        对比成功,复用当前页面;反之则重新渲染


利用local apicall响应更快的特点,可以减少总体的页面可用性等待时间。




或许你会疑惑,为什么React在客户端还需要再次进行渲染并验证。这是需要分成两个问题来分别讨论。

 

1. 为何需要再次渲染?

React中,组件通过Props和State来决定组件表现。例如,我们现在有一个Checkbox组件:


const CheckBox = ({ title, checked }) => (
);


通过服务端渲染转换成dom element后将会丢失virtual dom结构信息:


因此,为了React能够在客户端正常运行。客户端也需要进行一次渲染,构建出virtualdom结构。

 

2. 为何需要验证?

既然在


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部