學習react也有一段時間了,使用react後首頁渲染的速度與seo一直不理想。打算研究一下react神奇服務端渲染。
react服務端渲染只能使用nodejs做服務端語言實現前後端同構,在後台對react元件進行解析並生成html字串後返回檢視頁面。
後台為什麼可以解析react元件?因為node
.js是乙個j**ascript執行環境,nodejs與j**ascript語法基本是相同的,所以nodejs可以正常解析react元件。
一、準備動作
1、安裝nodejs與安裝express
安裝nodejs教程:
安裝express教程:
2、安裝node-jsx(使nodejs支援jsx語法)
$ npm install node-jsx
3、安裝ejs模板引擎
$ npm install ejs
1var ejs = require('ejs');
二、具體實現如下:
express路由:
1 "use strict";
2var express = require('express');
3var router =express.router(); require("node-jsx").install(); //
安裝"node-jsx",安裝該模組可以使nodejs相容jsx語法
6var react=require("react");
7var com=require('../component/test.js').component //
引入react元件
8 router.get('/', function
(req, res, next) )) //
向元件傳參,並使用rendertostring方法解析成html字串
10 res.render("index",); //
渲染到介面
11});
12 module.exports = router;
react元件:
1 "use strict";2var react=require("react");
3var component=react.component;
4class test extends component8}
9 module.exports=};
檢視(使用了ejs模板引擎):
1<
html
>
2<
head
>
3<
title
>dudeyouth部落格
title
>
4<
meta
charset
="utf-8"
/>
5<
link
href
="css/index.css"
rel="stylesheet"
/>
6<
link
href
="css/style.css"
rel="stylesheet"
/>
7head
>
8<
body
>
9<
div
id="container"
>
<%
-component
%>
div>
10body
>
11html
>
react服務端渲染next
mkdir nextdemo cd nextdemo npm init y 配置package.json scripts 啟動命令 npm run dev 或者yarn dev 啟動命令 yarn dev 或者npm run dev next缺省會自動給我們生成好路由,路由生成規則是在專案的根目錄下...
react服務端渲染框架
客戶端渲染 載入乙個空的html頁面,然後請求乙個打包的js檔案,然後再客戶端執行這個js檔案 動態生成html內容然後插入到dom元素上,在源 查詢中也只能看到空的html文件 沒有任何其他內容 服務端渲染 載入出來的就帶有完整的html文件內容 同時帶有資料 流程 瀏覽器傳送請求 伺服器端執行r...
React 服務端渲染的流程簡述
做 react ssr 有一段時間了,在正好在這裡分享一下.使用者第一次請求 重新整理頁面時,由服務端響應.伺服器響應的是乙個已經插入了元件文字的模板 template with pre populated component 由於響應的頁面已經有元件的 html 文字,可以省去瀏覽器端首次渲染的工...