搜尋

首頁  >  問答  >  主體

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

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

巴扎黑巴扎黑2776 天前619

全部回覆(1)我來回復

  • 迷茫

    迷茫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;

    • 除錯困難;

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

    回覆
    0
  • 取消回覆