安装ssr_三分钟开启你的 SSR 之旅

SSR 的全称是 Server Side Rendering,对应的中文名是:服务器端渲染,顾名思义是将渲染的工作放在 Server 端进行。本文将简短的为您介绍如何在 Rax 项目中快速体验 SSR 带来的优化效果。

新建应用

执行 npm init rax 命令,创建 Rax 应用:

$ npm init rax <YourProjectName>

并通过下面步骤,开启 SSR 能力:

  1. 选择项目类型为 app
  2. 勾选构建产物为 web
  3. 勾选 ssr
? What's your project name? rax-ssr-demo
? What's your project type? App (Build application that works multi-platform)
? Do you want to build to these targets? web
? Do you want to enable these features?
❯◉ server sider rendering (ssr)

完成依赖安装后,运行 npm start,即可在本地开始 SSR 项目的开发调试。

SSR 应用的工程结构遵循 Rax 通用的工程结构。

已有应用

如果是已有的 Web 应用,则可以按下面的方式,升级为 SSR 应用:

  1. 安装 SSR 插件
npm install rax-plugin-ssr --save-dev
  1. 添加 rax-plugin-ssr 插件到 build.json
{
  "plugins": [
    [
      "rax-plugin-app",
      {
        "targets": ["web"]
      }
    ],
+   "rax-plugin-ssr"
  ]
}
  1. 更新 app.json,增加 hydarte: true配置
{
  "routes": [
    {
      "path": "/",
      "source": "pages/Home/index"
    }
  ],
  "historyType": "browser",
+ "hydrate": true,
  "window": {
    "defaultTitle": "Rax App 1.0"
  }
}
  1. 更新页面模板,用于保存 Server 端返回的初始 HTML 结构及数据
function Document(props) {
  const {
+  initialHtml,
+  initialData,
    publicPath,
	...
  } = props;

  return (
    <html>
	 ....
      <body>
        {/* root container */}
+       <div id="root" dangerouslySetInnerHTML={{ __html: initialHtml || '' }} />
+       <script data-from="server" dangerouslySetInnerHTML={{__html: 'window.__INITIAL_DATA__=' + initialData}} />
        {scripts.map((src) => <script src={`${publicPath}${src}`} />)}
      </body>
    </html>
  );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值