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

首頁 > 開發 > JS > 正文

利用React Router4實現的服務端直出渲染(SSR)

2024-05-06 16:47:38
字體:
來源:轉載
供稿:網友

我們已經熟悉React 服務端渲染SSR)的基本步驟,現在讓我們更進一步利用 React RouterV4 實現客戶端和服務端的同構。畢竟大多數的應用都需要用到web前端路由器,所以要讓SSR能夠正常的運行,了解路由器的設置是十分有必要的

基本步驟

路由器配置

前言已經簡單的介紹了React SSR,首先我們需要添加ReactRouter4到我們的項目中

$ yarn add react-router-dom# or, using npm$ npm install react-router-dom

接著我們會描述一個簡單的場景,其中組件是靜態的且不需要去獲取外部數據。我們會在這個基礎之上去了解如何完成取到數據的服務端渲染。

在客戶端,我們只需像以前一樣將我們的的App組件通過ReactRouter的BrowserRouter來包起來。

src/index.js

import React from 'react';import ReactDOM from 'react-dom';import { BrowserRouter } from 'react-router-dom';import App from './App';ReactDOM.hydrate( <BrowserRouter>  <App /> </BrowserRouter>, document.getElementById('root'));

在服務端我們將采取類似的方式,但是改為使用無狀態的 StaticRouter

server/index.js

app.get('/*', (req, res) => { const context = {}; const app = ReactDOMServer.renderToString(  <StaticRouter location={req.url} context={context}>   <App />  </StaticRouter> ); const indexFile = path.resolve('./build/index.html'); fs.readFile(indexFile, 'utf8', (err, data) => {  if (err) {   console.error('Something went wrong:', err);   return res.status(500).send('Oops, better luck next time!');  }  return res.send(   data.replace('<div id="root"></div>', `<div id="root">${app}</div>`)  ); });});app.listen(PORT, () => { console.log(`
注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梁河县| 江永县| 黄平县| 黄山市| 满城县| 海伦市| 乌兰察布市| 界首市| 水富县| 庆云县| 乳山市| 甘谷县| 云霄县| 江津市| 简阳市| 铁岭县| 景谷| 孟村| 宜兰市| 广元市| 科尔| 大同县| 札达县| 连平县| 缙云县| 谢通门县| 扶绥县| 玛纳斯县| 肥东县| 靖安县| 滨州市| 龙泉市| 车险| 元氏县| 东乡| 东源县| 轮台县| 东山县| 营口市| 喀喇沁旗| 柳河县|