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

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

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

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

SSR的概念

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

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

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

解決渲染白屏

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

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

然后使用express your-project初始化你的express項(xiàng)目

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

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

初始化React項(xiàng)目并整合webpack

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

添加src文件夾

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

配置.babelrc

因?yàn)橛玫紼S6,ES7語法所以要配置.babelrc文件。這個(gè)文件東西不多下面直接貼出代碼

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

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

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

項(xiàng)目結(jié)構(gòu)

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

項(xiàng)目GitHub地址: https://github.com/Uwah/node-react

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

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

相關(guān)文章

  • React中redux的使用詳解

    React中redux的使用詳解

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

    react使用useImperativeHandle示例詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論