webpack实现ssr打包

本文介绍了如何使用 Webpack 结合 React 和 Express 实现 Server Side Rendering (SSR)。通过 SSR 提升首次有效渲染速度,优化SEO。讲解了中间件的概念,以及如何使用 renderToString 将 React 组件转化为 HTML 字符串。Webpack 配置中,通过 target 设为 node 和 externals 排除 node_modules,以减少代码体积。最后,讨论了客户端事件绑定的处理,利用 ReactDOM.hydrate 进行同构应用。
摘要由CSDN通过智能技术生成

知识点

技术栈:React, webpack, express
概念
  • CSR,Client Side Rendering
  • SSR,Server Side Rendering
目的

CSR 首次有效渲染时间慢,不利于 SEO

原理
  • 利用 中间件 (nodejs 服务器),在后端生成用于首屏渲染的html 字符串,直接返回前端(减少请求)
  • 返回的 html 包含了页面元素,利于 seo
  • 返回 html 时,利于 js 脚本 实现事件及 CSR

实现

react组件
// src/client/components/Home.js
import React from "react";

const Home = () => {
   
  return (
    <div>
      <div>Homepage</div>
      <button onClick={
   () => console.log("click me")}>click me</button>
    </div>
  );
};

export default Home;
express

搭建中间件服务器,响应页面请求,返回字符串html
renderToString 转化组件为 字符串

// src/index.js
import express from "express";
import React from "react"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值