欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單的React SSR服務(wù)器渲染實(shí)現(xiàn)

 更新時間:2018年12月11日 11:28:24   作者:舊丶時候  
這篇文章主要介紹了簡單的React SSR服務(wù)器渲染實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

為什么要SSR

單頁應(yīng)用將UI層和內(nèi)容都由javascript來渲染,搜索引擎或網(wǎng)頁爬蟲需要完成的HTML結(jié)構(gòu),因此單頁應(yīng)用如果只在客戶端渲染,不利于SEO,此外盡管我們可以通過按需加載的形式來減少首頁加載的js,但是通過js來渲染DOM的時候還是會有一定的時間延遲。

0.前言

服務(wù)端渲染在項目中不是剛需的東西,但有的時候也是需要做一個服務(wù)端渲染,項目要做服務(wù)端渲染當(dāng)然是有很多好處的

  • 首屏加載快,相比SPA單頁應(yīng)用還要有優(yōu)勢。
  • SEO 優(yōu)化 利于爬蟲,爬取數(shù)據(jù)。

1. 簡介

服務(wù)端渲染是指頁面的渲染和生成是在服務(wù)端完成的,并將渲染好的頁面返回客戶端。

2. 安裝

安裝的時候版本都是最新版,而新的版本很多方法和API有棄用和更新的,導(dǎo)致最后項目無法運(yùn)行。

npm install --save-dev koa
npm install --save-dev babel-core
npm install --save-dev babel-polyfill
npm install --save-dev babel-preset-latest-node
npm install --save-dev babel-preset-stage-2
npm install --save-dev babel-preset-react
# or
yarn add -dev koa
yarn add -dev babel-core
yarn add -dev babel-polyfill
yarn add -dev babel-preset-latest-node
yarn add -dev babel-preset-stage-2
yarn add -dev babel-preset-react

3.配置

安裝完成后寫一個啟動文件 start.js:

// start.js
require('babel-core/register')({
  ignore: [/node_modules/],
  presets: [
    'stage-2',
    'react',
    [
      "latest-node",
      { "target": "current" }
    ]
  ]
});

require('babel-polyfill');
require('./../index');

在寫一個入口文件index.js

// index.js
import Koa from 'koa';
import React from 'react';
import ReactDOMServer from 'react-dom/server';

const { renderToString } = ReactDOMServer;

const app = new Koa();

app.use(ctx => {
  ctx.body = renderToString(
    <div>
      <h1>Hello,World</h1>
    </div>
  );
});

app.listen(3000, () => {
  console.log('server run in 3000');
});

執(zhí)行npm start啟動項目

"scripts": {
  "start": "node ./src/start.js"
 },

4.結(jié)果

打開瀏覽器查看http://localhost:3000/ 

5.結(jié)束語

到這里就完成了一個簡單的 React SSR,當(dāng)然實(shí)現(xiàn)React服務(wù)端渲染還可以用別的方式,比如Next.js。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • React?組件傳?children?的各種案例方案詳解

    React?組件傳?children?的各種案例方案詳解

    自定義組件的時候往往需要傳?children,由于寫法比較多樣,我就總結(jié)了一下,要自定義的組件其中包含一個?title?和一個?children,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-10-10
  • Router添加路由攔截方法講解

    Router添加路由攔截方法講解

    在vue項目中使用vue-router做頁面跳轉(zhuǎn)時,路由的方式有兩種,一種是靜態(tài)路由,另一種是動態(tài)路由。而要實(shí)現(xiàn)對路由的控制需要使用vuex和router全局守衛(wèi)進(jìn)行判斷攔截
    2023-03-03
  • ReactRouter的實(shí)現(xiàn)方法

    ReactRouter的實(shí)現(xiàn)方法

    這篇文章主要介紹了ReactRouter的實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • react 中父組件與子組件雙向綁定問題

    react 中父組件與子組件雙向綁定問題

    這篇文章主要介紹了react 中父組件與子組件雙向綁定問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 解決React報錯Cannot?find?namespace?context

    解決React報錯Cannot?find?namespace?context

    這篇文章主要為大家介紹了React報錯Cannot?find?namespace?context分析解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • react+antd動態(tài)增刪表單方式

    react+antd動態(tài)增刪表單方式

    這篇文章主要介紹了react+antd動態(tài)增刪表單方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • React自定義Hook-useForkRef的具體使用

    React自定義Hook-useForkRef的具體使用

    本文主要介紹了React自定義Hook-useForkRef的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解React中錯誤邊界的原理實(shí)現(xiàn)與應(yīng)用

    詳解React中錯誤邊界的原理實(shí)現(xiàn)與應(yīng)用

    在React中,錯誤邊界是一種特殊的組件,用于捕獲其子組件樹中發(fā)生的JavaScript錯誤,并防止這些錯誤冒泡至更高層,導(dǎo)致整個應(yīng)用崩潰,下面我們就來看看它的具體應(yīng)用吧
    2024-03-03
  • 淺談React Router關(guān)于history的那些事

    淺談React Router關(guān)于history的那些事

    這篇文章主要介紹了淺談React Router關(guān)于history的那些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • React前端DOM常見Hook封裝示例下

    React前端DOM常見Hook封裝示例下

    這篇文章主要為大家介紹了React前端DOM常見Hook封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評論