Next.js 靜態(tài)生成和服務(wù)器端渲染

Next.js具有兩種形式的預(yù)渲染:靜態(tài)生成和服務(wù)器端渲染
getStaticProps(靜態(tài)生成):在構(gòu)建時(shí)獲取數(shù)據(jù)戚炫。
getStaticPaths(靜態(tài)生成):根據(jù)數(shù)據(jù)指定要[動(dòng)態(tài)]渲染的[動(dòng)態(tài)路由]作郭。
getServerSideProps(服務(wù)器端渲染):在每個(gè)請(qǐng)求上獲取數(shù)據(jù)。

getStaticProps(靜態(tài)生成)

呈現(xiàn)頁面所需的數(shù)據(jù)可在構(gòu)建時(shí)在用戶請(qǐng)求之前獲得秀睛。
該頁面必須預(yù)渲染(對(duì)于SEO)并且必須非吵檀ⅲ快- getStaticProps生成HTML和JSON文件瓤檐,CDN可以將它們都緩存以提高性能登疗。

import { GetStaticProps } from 'next' // 對(duì)于TypeScript,您可以使用以下GetStaticProps類型next
export async function getStaticProps: GetStaticProps(context) {
  return {
    props: {}, // 將作為道具傳遞到頁面組件
  }
}
getStaticPaths(靜態(tài)生成)

如果頁面具有動(dòng)態(tài)路由并使用 getStaticProps 它嫌蚤,則需要定義一個(gè)在構(gòu)建時(shí)必須呈現(xiàn)為HTML的路徑列表辐益。
如果從使用動(dòng)態(tài)路由的頁面導(dǎo)出async調(diào)用的函數(shù)getStaticPaths,則Next.js將靜態(tài)預(yù)呈現(xiàn)由指定的所有路徑getStaticPaths脱吱。
例如智政,假設(shè)有一個(gè)使用動(dòng)態(tài)路由的頁面pages/posts/[id].js。如果您getStaticPaths從此頁面導(dǎo)出并返回以下內(nèi)容paths:
getStaticPaths 僅在構(gòu)建時(shí)在服務(wù)器端運(yùn)行箱蝠。

export async function getStaticPaths() {
  return {
    paths: [
      { params: { id: '1' } },
      { params: { id: '2' } }
    ],
    fallback: true or false 
  };
}

// 在使用 getStaticProps 靜態(tài)生成
export async function getStaticProps({ params }) {
  // 參數(shù)包含post ' id '续捂。
  // 如果路由類似/posts/1垦垂,則params。id是1
  const res = await fetch(`https://.../posts/${params.id}`)
  const post = await res.json()

  // 通過道具將post數(shù)據(jù)傳遞到頁面
  return { props: { post } }
}
getServerSideProps(服務(wù)器端渲染)

getServerSideProps僅在服務(wù)器端運(yùn)行牙瓢,而從不在瀏覽器上運(yùn)行劫拗。
getServerSideProps 比 getStaticProp 花的時(shí)間要慢由于服務(wù)器必須在每個(gè)請(qǐng)求上計(jì)算結(jié)果,并且如果沒有額外的配置矾克,結(jié)果不能由CDN緩存页慷。
如果不需要預(yù)渲染數(shù)據(jù),則應(yīng)考慮在客戶端獲取數(shù)據(jù)胁附。

import { GetServerSideProps } from 'next' //TypeScript:使用 GetServerSideProps

export async function getServerSideProps:GetServerSideProps (context) {
  return {
    props: {}, // 將作為道具傳遞到頁面組件
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酒繁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子控妻,更是在濱河造成了極大的恐慌州袒,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弓候,死亡現(xiàn)場(chǎng)離奇詭異郎哭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)弓叛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門彰居,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撰筷,你說我怎么就攤上這事陈惰。” “怎么了毕籽?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵抬闯,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我关筒,道長(zhǎng)溶握,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任蒸播,我火速辦了婚禮睡榆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袍榆。我一直安慰自己胀屿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布包雀。 她就那樣靜靜地躺著宿崭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪才写。 梳的紋絲不亂的頭發(fā)上葡兑,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天奖蔓,我揣著相機(jī)與錄音,去河邊找鬼讹堤。 笑死吆鹤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜕劝。 我是一名探鬼主播檀头,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岖沛!你這毒婦竟也來了暑始?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤婴削,失蹤者是張志新(化名)和其女友劉穎廊镜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唉俗,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嗤朴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虫溜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雹姊。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖衡楞,靈堂內(nèi)的尸體忽然破棺而出吱雏,到底是詐尸還是另有隱情,我是刑警寧澤瘾境,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布歧杏,位于F島的核電站,受9級(jí)特大地震影響迷守,放射性物質(zhì)發(fā)生泄漏犬绒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一兑凿、第九天 我趴在偏房一處隱蔽的房頂上張望凯力。 院中可真熱鬧,春花似錦礼华、人聲如沸沮协。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至聘殖,卻和暖如春晨雳,著一層夾襖步出監(jiān)牢的瞬間行瑞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工餐禁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留血久,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓帮非,卻偏偏與公主長(zhǎng)得像氧吐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子末盔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355