欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Node搭建reactSSR服務(wù)端渲染架構(gòu)

 更新時間:2018年08月30日 08:38:36   作者:leung_blog  
這篇文章主要介紹了使用Node搭建reactSSR服務(wù)端渲染架構(gòu),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

如題;本文所講架構(gòu)主要用到技術(shù)棧有: Node, Express, React, Mobx, webpack4, ES6, ES7, axios, ejs,  log4js, scss,echarts,ant desige

SSR的概念

Server Slide Rendering,縮寫為 ssr,即服務(wù)器端渲染,因為是后端出身,所以其實早就明白是怎么回事,只是沒這個具體名詞的概念罷了,這個詞被頻繁提起也是拜近年來前端飛速發(fā)展所賜,主要針對 SPA應(yīng)用,目的大概有以下幾個:

解決單頁面應(yīng)用的 SEO

單頁應(yīng)用頁面大部分主要的 HTML并不是服務(wù)器返回,服務(wù)器只是返回一大串的 腳本,頁面上看到的大部分內(nèi)容都是由腳本生成,對于一般網(wǎng)站影響不大,但是對于一些依賴搜索引擎帶來流量的網(wǎng)站來說則是致命的,搜索引擎無法抓取頁面相關(guān)內(nèi)容,也就是用戶搜不到此網(wǎng)站的相關(guān)信息,自然也就無流量可言。

解決渲染白屏

因為頁面 HTML由服務(wù)器端返回的腳本生成,一般來說這種腳本的體積都不會太小,客戶端下載需要時間,瀏覽器解析以生成頁面元素也需要時間,這必然會導(dǎo)致頁面的顯示速度比傳統(tǒng)服務(wù)器端渲染得要慢,很容易出現(xiàn)首頁白屏的情況,甚至如果瀏覽器禁用了 JS,那么將直接導(dǎo)致頁面連基本的元素都看不到。使用Express初始化Node服務(wù)

開始本項目首先你的電腦要安裝有node,npm這個沒什么好說的。其次本次Node服務(wù)用的框架是express;所以要安裝: express-generator

然后使用express your-project初始化你的express項目

npm install express-generator -g
//執(zhí)行這條命令全局安裝express-generator,如果你不想全局安裝把-g去掉即可

初始化express項目之后我們開始把react,webpack整合到這個node服務(wù)上。

初始化React項目并整合webpack

這里整合webpack使用的是webpack4的版本,如果你熟悉vue-cli(vue-cli3之前的版本)的話你應(yīng)該會知道webpack配置有多少個文件,這里參考了vue-cli生成的webpack配置。

添加src文件夾

src文件夾下的內(nèi)容都是整個react的一些核心配置,如請求處理,css樣式,公共組件,路由,頁面,stores全局狀態(tài)數(shù)據(jù)。

配置.babelrc

因為用到ES6,ES7語法所以要配置.babelrc文件。這個文件東西不多下面直接貼出代碼

{
 "presets": [["es2015", { "modules": false }], "react", "stage-0"],
 "plugins": [
 "transform-decorators-legacy",
 ["import", { "libraryName": "antd", "style": "css" }],
 "transform-runtime"
 ]
}

修改Node服務(wù)app.js

其實主要是加上這句:app.use('/', reactSSR); 其就是為了項目啟動的時候開啟熱更新并渲染views中reactSSR.ejs這個模板引擎文件從而達到服務(wù)端渲染的目的。

項目結(jié)構(gòu)

這里把項目主要的文件夾結(jié)構(gòu)放到最后。

項目GitHub地址: https://github.com/Uwah/node-react

后期部署上服務(wù)器之后會找個時間更新博客,主要是用到pm2

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • React中redux的使用詳解

    React中redux的使用詳解

    Redux 是一個狀態(tài)管理庫,它可以幫助你管理應(yīng)用程序中的所有狀態(tài),Redux的核心概念之一是Store,它表示整個應(yīng)用程序的狀態(tài),這篇文章給大家介紹React中redux的使用,感興趣的朋友一起看看吧
    2023-12-12
  • react使用useImperativeHandle示例詳解

    react使用useImperativeHandle示例詳解

    這篇文章主要為大家介紹了react使用useImperativeHandle示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • React?中的Props特性及其應(yīng)用

    React?中的Props特性及其應(yīng)用

    Render?Props?提供了一種更簡潔、更靈活的方式來共享組件的狀態(tài)和行為,本文將詳細介紹?Render?Props?的概念、實現(xiàn)方法及其應(yīng)用場景,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 詳解React Native 采用Fetch方式發(fā)送跨域POST請求

    詳解React Native 采用Fetch方式發(fā)送跨域POST請求

    這篇文章主要介紹了詳解React Native 采用Fetch方式發(fā)送跨域POST請求,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • React如何使用localStorage及實現(xiàn)刪除筆記操作過程

    React如何使用localStorage及實現(xiàn)刪除筆記操作過程

    這篇文章主要介紹了React如何使用localStorage及實現(xiàn)刪除筆記操作過程,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-12-12
  • react-draggable實現(xiàn)拖拽功能實例詳解

    react-draggable實現(xiàn)拖拽功能實例詳解

    這篇文章主要給大家介紹了關(guān)于react-draggable實現(xiàn)拖拽功能的相關(guān)資料,React-Draggable一個使元素可拖動的簡單組件,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • react?express實現(xiàn)webssh?demo解析

    react?express實現(xiàn)webssh?demo解析

    這篇文章主要為大家介紹了詳解react?express實現(xiàn)webssh?demo解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • React并發(fā)更新與性能優(yōu)化解析

    React并發(fā)更新與性能優(yōu)化解析

    這篇文章主要為大家介紹了React并發(fā)更新與性能優(yōu)化解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • React中mobx和redux的區(qū)別及說明

    React中mobx和redux的區(qū)別及說明

    這篇文章主要介紹了React中mobx和redux的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 關(guān)于React Native使用axios進行網(wǎng)絡(luò)請求的方法

    關(guān)于React Native使用axios進行網(wǎng)絡(luò)請求的方法

    axios是一個基于Promise的Http網(wǎng)絡(luò)庫,可運行在瀏覽器端和Node.js中,Vue應(yīng)用的網(wǎng)絡(luò)請求基本都是使用它完成的。這篇文章主要介紹了React Native使用axios進行網(wǎng)絡(luò)請求,需要的朋友可以參考下
    2021-08-08

最新評論