Next.js (上)

創(chuàng)建項(xiàng)目

命令

  • npm init next-app nextjs-blog-1
  • 然后選擇 Default starter app
  • yarn dev
  • 用瀏覽器打開控制臺(tái)給出的網(wǎng)址

Link快速導(dǎo)航

用法

  • < a href= >點(diǎn)擊跳轉(zhuǎn)</ a>改成
  • <Link href=xxx><a>點(diǎn)擊跳轉(zhuǎn)</ a></Link>

優(yōu)點(diǎn)

  • 頁面不會(huì)刷新,用AJAX請求新頁面內(nèi)容
  • 不會(huì)請求重復(fù)的HTML、CSS、JS
  • 自動(dòng)在頁面插入新內(nèi)容、刪除舊內(nèi)容
  • 因?yàn)槭×撕芏嗾埱蠛徒馕鲞^程聪铺,所以速度極快

同構(gòu)代碼

代碼運(yùn)行在兩端

  • 在組件里寫一句console.log('執(zhí)行了')
  • 你會(huì)發(fā)現(xiàn)Node控制臺(tái)會(huì)輸出這句話
  • 你會(huì)發(fā)現(xiàn)Chrome控制臺(tái)也會(huì)輸出這句話

注意差異

  • 不是所有的代碼都會(huì)運(yùn)行亥揖,有些需要用戶觸發(fā)
  • 不是所有的API都能用妙同,比如window在Node里報(bào)錯(cuò)

全局配置

pages/_app.js

  • export default function App是每個(gè)頁面的根組件
  • 頁面切換時(shí)App不會(huì)銷毀砚蓬,App里面的組件會(huì)銷毀
  • 可用App保存全局狀態(tài)
import '../styles/globals.css'
import Head from 'next/head'

function MyApp({Component, pageProps}) {
  return (
      <>
        <Head>
          {/*公共頭部*/}
          <title>我的blog - kong</title>
          <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
        </Head>
        <Component {...pageProps} />
      </>
  )
}

export default MyApp

注意

  • 創(chuàng)建_app.js之后需要重啟yarn dev

全局CSS

放在_app.js

  • import./styles/global.css
  • 因?yàn)榍许撁鏁r(shí)App不會(huì)銷毀
  • 其他地方不能import global.css
  • 其他地方只能寫局部CSS
import styles from '../styles/Home.module.css'

export default function Home() {
  return (
      // styles module用法
      <div className={styles.container}>
        <h1>標(biāo)題一</h1>
        <p>段落</p>
        
        <style jsx>{`
          h1 {
            color: red;
          }
        `}</style>
        {/*添加global,影響全局的樣式*/}
        <style jsx global>{`
          body {
            background: yellow;
          }
        `}</style>
      </div>
  )
}

插曲

  • 相對(duì)引用好煩盆色,能改成import 'styles/global.css'嗎灰蛙?
  • 看文檔「Absolute lmports」章節(jié)
    創(chuàng)建jsconfig.json
{
  "compilerOptions": {
    "baseUrl": "."
  }
}

局部CSS

官方支持
默認(rèn)支持 styled-jsxCSS Modules
一般來說,簡單需求用前者隔躲,復(fù)雜需求用后者我的個(gè)人偏好

其他類型文件

圖片

  • 配置file-loader
  • 或者直接用 next-images

SVG

  • 一部分可以當(dāng)作圖片使用
  • icons/svg要當(dāng)作SVG Symbols使用
const nextConfig = {
  reactStrictMode: true,
  webpack: (config, options)=> {
    config.module.rules.push({
      test: '/\.(png|jpg|svg|jpeg|gif)$/',
      use: [
        {
          loader: 'file-loader',
          options: {
            name: '[name].[contenthash].[ext]',
            outputPath: 'static', // 硬盤路徑
            publicPath: '_next/static' // 網(wǎng)站路徑
          }
        }
      ]
    })
    return config
  }
}

module.exports = nextConfig
  • 目前沒有插件摩梧,只能自己配置

更多

  • 自己要loader,然后配置next.config.js
  • 或者看有沒有人封裝成next插件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宣旱,一起剝皮案震驚了整個(gè)濱河市仅父,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浑吟,老刑警劉巖笙纤,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異组力,居然都是意外死亡省容,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門燎字,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腥椒,“玉大人阿宅,你說我怎么就攤上這事×耄” “怎么了洒放?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滨砍。 經(jīng)常有香客問我往湿,道長,這世上最難降的妖魔是什么惨好? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任煌茴,我火速辦了婚禮,結(jié)果婚禮上日川,老公的妹妹穿的比我還像新娘蔓腐。我一直安慰自己,他們只是感情好龄句,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布回论。 她就那樣靜靜地躺著,像睡著了一般分歇。 火紅的嫁衣襯著肌膚如雪傀蓉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天职抡,我揣著相機(jī)與錄音葬燎,去河邊找鬼。 笑死缚甩,一個(gè)胖子當(dāng)著我的面吹牛谱净,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播擅威,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼壕探,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了郊丛?” 一聲冷哼從身側(cè)響起李请,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎厉熟,沒想到半個(gè)月后导盅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庆猫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年认轨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片月培。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嘁字,死狀恐怖恩急,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纪蜒,我是刑警寧澤衷恭,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站纯续,受9級(jí)特大地震影響随珠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猬错,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一窗看、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倦炒,春花似錦显沈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鳖藕,卻和暖如春魔慷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背著恩。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工院尔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喉誊。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓召边,卻偏偏與公主長得像,于是被迫代替她去往敵國和親裹驰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容