1. 程式人生 > >使用React服務端渲染Next.js框架構建一個簡單專案

使用React服務端渲染Next.js框架構建一個簡單專案

最近在學習React的服務端的東西, 感覺有些難度, 最近看的多了, 有點感覺了,比如React16.x中的服務端渲染(SSR)寫的不錯,很很簡單,後來發現Next框架 很簡單, 所以抄錄下來了。

伺服器端渲染
服務端渲染是指頁面的渲染和生成是在服務端完成的,並將渲染好的頁面返回客戶端。

Next.js是什麼
Next.js是一個使用React構建服務呈現Web的應用程式。它使用React語法,可以很好的實現程式碼的模組化,有利於程式碼的開發和維護。

Next.js的特性
1、預設服務端渲染模式 
2、程式碼自動分隔使頁面載入更快 
3、以頁面為基礎的簡潔的客戶端路由 
4、支援webapck熱替換 
5、可以執行在Express和其他Node.js的HTTP 伺服器上 
6、可以定製化專屬的babel和webpack配置 
7、基於React語法,可以實現程式碼模組化,有利於維護和開發

開始構建專案
1、在命令列依次輸入如下命令:

D:\>mkdir next-demo
D:\>cd next-demo && npm init -y
D:\>npm install react react-dom next --save//本地依賴
D:\>mkdir pages



2、修改next-demo資料夾下的package.json中的“script”

{
  "scripts": {
    "dev": "next"
  }
}


3、開啟專案服務

D:\>npm run dev

服務啟動完成以後,在瀏覽器中訪問http://localhost:3000 

404頁面是Next.js預設生成的頁面,之所以訪問的頁面是404是因為我們沒有設定專案主頁。

建立主頁
Next.js是從服務端渲染生成頁面,再返回給客戶端展示。Next.js預設從 pages 目錄下獲取頁面進行渲染並返回給客戶端展示,且預設取 pages/index.js 作為專案的首頁進行展示。 
注意,pages 是預設存放頁面的目錄,路由的根路徑也是pages目錄。

import React from 'react';
export default class Index extends React.Component{
    constructor(props){
        super(props);
    }
    render(){
        return (<div>
         <p>Index Page!</p>
        </div>)
    }
}

//或者

const Index = ()=>(<div>
         <p>Index Page!</p>
        </div>)
export default Index

由於Next.js預設使用Webpack構建專案,使用它的熱部署功能。建立完 pages/index.js 後,再訪問 http://localhost:3000 即可看到我們設定的專案主頁。

至此,基於React伺服器渲染Next.js框架構建一個簡單專案完成。

關於Next.js的更高階的用法,可以參考官方的例子:Next.js。

如果有寫的不對的,或者理解不到位地方,歡迎各位指正。