Rumah  >  Soal Jawab  >  teks badan

node.js - react+express同构开发,数据端与服务端需要分离吗?

现在的提供数据服务的后台也是express的
目前准备开发一个前端,采用react+express的同构开发模式,服务端渲染页面
请问我这个前端的react+express和正在使用的express数据后台需要分离吗?
如果不需要,直接在现在的后台中+react构建前端,是否要前端工程师与后端工程师共同维护这个工程,会不会出现什么麻烦?
谢谢!!!

巴扎黑巴扎黑2766 hari yang lalu611

membalas semua(1)saya akan balas

  • 迷茫

    迷茫2017-04-17 14:50:40

    1.服务端渲染就在你原来的后台渲染就好了,返回html的串给react前端,react前端负责展现

    2.我觉得一般一个人维护就好了,即使两个人维护也没关系呢,co-work本来就是工作的一部分,别担心。

    3.补充一点客户端渲染和服务端渲染的区别吧(client-side rendering vs server-side rendering)

    • Lantency(延迟) 服务端渲染的话首次加载会很快,因为不需要像客户端渲染一样去请求js,css和data,然后组装展现出来,服务端渲染直接将html串给前端。但是在页面数据局部更新或者需要重新渲染子组件的时候,服务端渲染就会慢很多,因为你要发起网络请求,重新在服务端产生大部分或者全部的更新的html串,然后返回给客户端。但是客户端渲染的话,只需要局部重新更新即可。

    • SEO(搜索引擎优化) 客户端渲染的页面对搜索引擎并不友好,搜索引擎通常只页面的html,不会去执行js的。客户端渲染的页面返回的时候只有一个html template而已,真正的内容是要执行了js去填充的,对搜索引擎并不友好,当然也有解决方案(PhantomJS 后面会备注PhantomJS的介绍和原因), 但是这样只会增加你程序的复杂性,不推荐采用。服务端渲染的话因为服务端已经产生了完整的html串,有利于搜索引擎的分析。

    • Browser Concept and Issues(浏览器概念和问题) 服务端渲染保证了pages are documents的定义,客户端通过URL请求页面document,你应该得到document的text,而不是一段程序然后再前端执行。还有浏览器兼容性的问题,客户端渲染给浏览器越多的操作,发生兼容性问题的可能就越大。

    注:PhantomJS介绍

    • PhantomJS是一个无头浏览器

    • PhantomJS可以解决客户端渲染对搜索引擎不友好的问题,它可以在数据返回给客户端之前,对HTML/JavaScript/CSS进行预渲染, 这意味着页面被加载的时候,所有初始化的js都被执行了.

    • 既然可以解决客户端渲染对搜索引擎不友好的问题,那为什么不用呢?

    主要原因:

    • 如果你为每一个请求,都启动一个PhantomJS实例,那如果搜索引擎同时爬取多个页面,那你机器的性能会受到影响;

    • PhantomJS运行的是老版本的js;

    • 调试困难;

    • 说白了就是引入的成本太大,不值得!!!!

    balas
    0
  • Batalbalas