全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解react服务端渲染(同构)的方法

学习react也有一段时间了,使用react后首页渲染的速度与seo一直不理想。打算研究一下react神奇服务端渲染。

react服务端渲染只能使用nodejs做服务端语言实现前后端同构,在后台对react组件进行解析并生成html字符串后返回视图页面。

后台为什么可以解析react组件?因为Node.js是一个Javascript运行环境,nodejs与javascript语法基本是相同的,所以nodejs可以正常解析react组件。

一、准备动作

 1、安装nodejs与安装express

安装nodejs教程:https://www./article/33086.htm

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# react服务端渲染  # react同构渲染  # react服务端渲染代码  # React服务端渲染原理解析与实践  # 详解React服务端渲染从入门到精通  # 详解React 服务端渲染方案完美的解决方案  # 使用Node搭建reactSSR服务端渲染架构  # 详解React 在服务端渲染的实现  # React服务端渲染(总结)  # React服务端渲染和同构的实现  # 服务端  # 是一个  # 运行环境  # 也有  # 首页  # 不理想  # 大家多多  # 后端  # 使用了  # 博客  # npm  # install  # bash  # jsx  # node  # pre  # brush  # class  # set  # __express 


相关文章: 免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何规划企业建站流程的关键步骤?  如何配置支付宝与微信支付功能?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  营销式网站制作方案,销售哪个网站招聘效果最好?  建站主机选购指南与交易推荐:核心配置解析  导航网站建站方案与优化指南:一站式高效搭建技巧解析  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  中山网站推广排名,中山信息港登录入口?  如何在宝塔面板中创建新站点?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  视频网站制作教程,怎么样制作优酷网的小视频?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  存储型VPS适合搭建中小型网站吗?  如何选择高性价比服务器搭建个人网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  C++如何编写函数模板?(泛型编程入门)  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何用花生壳三步快速搭建专属网站?  寿县云建站:智能SEO优化与多行业模板快速上线指南  c# 在ASP.NET Core中管理和取消后台任务  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?    如何解决VPS建站LNMP环境配置常见问题?  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何在服务器上配置二级域名建站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  常州企业网站制作公司,全国继续教育网怎么登录?  文字头像制作网站推荐软件,醒图能自动配文字吗?  微信小程序 input输入框控件详解及实例(多种示例)  购物网站制作公司有哪些,哪个购物网站比较好?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  高防服务器租用首荐平台,企业级优惠套餐快速部署  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何配置WinSCP新建站点的密钥验证步骤?  建站之星如何修改网站生成路径?  建站之星多图banner生成与模板自定义指南  PHP 500报错的快速解决方法  公司网站的制作公司,企业网站制作基本流程有哪些?  定制建站方案优化指南:企业官网开发与建站费用解析  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  如何通过西部数码建站助手快速创建专业网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  长沙做网站要多少钱,长沙国安网络怎么样?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  建站主机SSH密钥生成步骤及常见问题解答?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。