页面首次渲染时怎样获取数据比较好?

发布于 2022-09-01 23:31:10 字数 175 浏览 14 评论 0

从刚开始学Node.js用Express框架写东西的时候一直都是用res.render()的形式传递首次渲染的数据,但是我感觉这样不太好和其他的前端框架配合啊,比如用React的话是不是应该把获取数据的过程放在组件声明周期中get更合理呢?这样的话可能首次渲染就会需要很多的get请求,会不会对性能有很大影响?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

苏佲洛 2022-09-08 23:31:10

其实没明白你用Express在做什么。
是Host整个网站页面还是只做API返回数据?
如果是Host整个网站,那么还得分你需不需要SEO.

只说Host网站

  1. 需要SEO
    那么你应该在res.render()的时候返回一个完整的页面(包含数据的,因为搜索引擎在爬页面的时候是不执行Js的),如果用React的话,你可以用React的服务器渲染方法来做,其他的框架得看情况。

  2. 不需要SEO
    那么就像@kikong说的,只需要返回一个页面框架(包含必要的JS和CSS),然后在前端渲染的时候掉Ajax拿数据,比如React就在component的componentDidMount的时候调Ajax就行了。

PS:如果是不需要SEO的情况,其实你不需要用express返回html,只在express里面做API返回数据就行了。那个Html直接放到apache里面当静态内容用就是了。这样整个架构比较清晰简单。

伴随着你 2022-09-08 23:31:10

怎么个不好配合法咧?
res.render把你需要显示的必要HTML内容先返回-页面的整体页面框架,需要用到的CSS、JS脚本等。
后续的用户交互需要使用的数据再通过ajax的get/post方法获取就好了。
这个有利于用户的交互体验~~~

弱骨蛰伏 2022-09-08 23:31:10
  1. 首屏由后端渲染的优势不用多说。

  2. 题主其实想问的是React的Server Rendering吧,React的后端渲染(同构)稍微麻烦一些:

详细可以进这个回答里:http://segmentfault.com/q/1010000004129678/a-1020000004130487

还不是爱你 2022-09-08 23:31:10

React有专门的服务端渲染首屏的方法,详见express-react-views,相当于把JSX当做jade这样的模板引擎再用,在服务端直接将首屏的虚拟DOM转化为真实DOM的后发送到客户端,速度比放在组件声明周期中拿数据快多了,而且SEO完美。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文