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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:26:23
字體:
來源:轉載
供稿:網友

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

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

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

一、準備動作

 1、安裝nodejs與安裝express

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

安裝express教程://www.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>

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 兴业县| 闻喜县| 蕉岭县| 精河县| 内江市| 林口县| 苍溪县| 岳普湖县| 南召县| 开远市| 磴口县| 万全县| 卢龙县| 奎屯市| 娄底市| 莲花县| 柘荣县| 惠安县| 土默特左旗| 兴国县| 会泽县| 湖北省| 桃江县| 泰和县| 商洛市| 太康县| 盘山县| 三亚市| 维西| 星子县| 安阳县| 两当县| 诸暨市| 绥宁县| 景洪市| 岑溪市| 阜城县| 两当县| 龙门县| 大丰市| 德清县|