国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解react服務端渲染(同構)的方法

2019-11-19 15:20:58
字體:
來源:轉載
供稿:網友

學習react也有一段時間了,使用react后首頁渲染的速度與seo一直不理想。打算研究一下react神奇服務端渲染。

react服務端渲染只能使用nodejs做服務端語言實現前后端同構,在后臺對react組件進行解析并生成html字符串后返回視圖頁面。

后臺為什么可以解析react組件?因為Node.js是一個Javascript運行環境,nodejs與javascript語法基本是相同的,所以nodejs可以正常解析react組件。

一、準備動作

 1、安裝nodejs與安裝express

安裝nodejs教程://m.survivalescaperooms.com/article/33086.htm

安裝express教程://m.survivalescaperooms.com/article/36710.htm

 2、安裝node-jsx(使nodejs支持jsx語法)

$ npm install node-jsx

3、安裝ejs模板引擎

$ npm install ejs

4、選用ejs模板引擎解析html視圖文件(配置express框架應用的app.js),需修改配置如下:

var ejs = require('ejs'); app.engine('.html',ejs.__express);  //使用ejs模板引擎解析html視圖文件 app.set('view engine', 'html');  

二、具體實現如下:

express路由:

"use strict";var express = require('express');var router = express.Router(); require("node-jsx").install();  //安裝"node-jsx",安裝該模塊可以使nodejs兼容jsx語法var React=require("react");var Com=require('../component/test.js').Component //引入react組件router.get('/', function(req, res, next) { var html=React.renderToString(Com({name:"dudeyouth"}))  //向組件傳參,并使用renderToString方法解析成html字符串 res.render("index",{component:html}); //渲染到界面});module.exports = router;

react組件:

"use strict";var React=require("react");var Component=React.Component;class Test extends Component{  render(){    return <h1>{this.props.name}</h1>;  }}module.exports={"Component":function(props){  return <Test {...props}/>}};

視圖(使用了ejs模板引擎):

<html>  <head>    <title>DudeYouth博客</title>    <meta charset="utf-8" />    <link href="css/index.css" rel="external nofollow" rel="stylesheet"/>    <link href="css/style.css" rel="external nofollow" rel="stylesheet"/>  </head>  <body>  <div id="container"><%-component%></div> <!--使用ejs模板解析后的html字符串-->  </body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦县| 黄冈市| 寿阳县| 当阳市| 建湖县| 泰州市| 鄄城县| 栾城县| 清丰县| 巴中市| 新源县| 静乐县| 大庆市| 辉南县| 延川县| 合川市| 邵阳市| 隆德县| 内江市| 桐庐县| 麟游县| 阿城市| 巴中市| 凤冈县| 抚宁县| 宁德市| 庆元县| 资溪县| 宁阳县| 砀山县| 鄂托克前旗| 锦州市| SHOW| 布尔津县| 富民县| 北辰区| 乐都县| 扶沟县| 左贡县| 望奎县| 闽侯县|