• react服务端渲染(四)实现服务端组件渲染与自动重启


    1. 用了webpack的stage-0进行打包所以可以支持使用es6 modules语法
      import React from "react"
      const Home = () => {
          return <div>Home1233333</div>
      }
      export default Home;
    2. 借助react-dom提供的renderToString方法完成组件到字符串的转换
      import React from 'react';
      import { renderToString } from 'react-dom/server'
      
      import Home from './containers/Home'
      
      app.get("/",(req,res)=>{
          res.send(renderToString(<Home />))
      })
    3. 直接渲染的home在浏览器端显示只是一个dom节点
      我们最好拼接为html模板返回
      var home = renderToString(<Home />);
      app.get("/",(req,res)=>{
          res.send(`<html>
              <head>
                  <title>服务端渲染</title>
              </head>
              <body>
              ${home}
              </body>
          </html>`)
      })

    4. webpack添加--watch参数,完成对入口文件以及依赖文件的监听 实现自动重新打包
    5. nodemo安装 实现监听文件/文件夹 实现自动重启
          "start": "nodemon --watch build --exec node "./build/bundle.js"",
          "build": "webpack --config webpack.server.js --watch"

      nodemon --watch参数表示监听的对象 --exec参数表示对象变化之后执行的命令 后面的文件路径需要加双引号,由于外层有引号,使用 进行转义

    6. 安装npm-run-all来同时实现两个命令(--parallel参数代表并行执行)https://www.npmjs.com/package/npm-run-all
          "dev": "npm-run-all --parallel dev:**",
          "dev:start": "nodemon --watch build --exec node "./build/bundle.js"",
          "dev:build": "webpack --config webpack.server.js --watch"

    项目地址:git@github.com:longlongdan/Reactssr.git

  • 相关阅读:
    CodeForces 722C 题解
    ubuntu自带神奇文本编辑器-gedit使用入门
    My new Blog on cnblogs
    kaldi语音识别技术
    BUAA-OO-第三单元作业-JML之图论
    C++面向对象编程思想
    软件工程-设计模式
    BUAA-OO-第二单元作业-电梯调度
    操作系统make命令与Makefile文件编写
    操作系统启动过程分析(Linux-OS启动优化)
  • 原文地址:https://www.cnblogs.com/longlongdan/p/11271537.html
Copyright © 2020-2023  润新知