二藻糖、Next.js淹冰,頁面導(dǎo)航

Next.js是一個新的通用JavaScript框架,它為基于React和服務(wù)器的Web應(yīng)用提供了一個新的可選方案巨柒。

Next.js目前已經(jīng)開源樱拴,https://zeit.co/blog/next

現(xiàn)在我們知道如何創(chuàng)建一個簡單的Next.js應(yīng)用并運行它。我們的簡單應(yīng)用只有一個頁面洋满,但是我們可以添加任意多的頁面晶乔。例如,我們可以創(chuàng)建一個“About”頁面,將下面的內(nèi)容添加到 pages/about.js:

export default () => (
  <div>
    <p>This is the about page</p>
  </div>
)

然后我們可以訪問那個頁面通過 http://localhost:3000/about

在那之后,我們需要連接這些頁面牺勾。我們可以使用HTML的“a”標(biāo)簽正罢。然而,它不會執(zhí)行客戶端導(dǎo)航;它通過服務(wù)器導(dǎo)航到頁面驻民,這不是我們想要的翻具。

為了支持客戶端導(dǎo)航袱饭,我們需要使用Next.js API的Link,這時可以導(dǎo)入 next/link

讓我們看看如何使用它。

安裝

為了跟上這節(jié)課的學(xué)習(xí)呛占,你需要有一個簡單的Next.js應(yīng)用虑乖。為此,繼續(xù)上一節(jié)課的工作,或者下載下面的示例應(yīng)用程序:

git clone https://github.com/arunoda/learnnextjs-demo.git
cd learnnextjs-demo
git checkout getting-started

你可以通過以下命令執(zhí)行:

你可以用它來運行它:

現(xiàn)在晾虑,您可以通過導(dǎo)航 http://localhost:3000/ 來訪問該應(yīng)用程序疹味。

使用Link

現(xiàn)在我們將使用 next/link 來鏈接我們的兩個頁面。

將以下代碼添加到 page/index.js 中

// This is the Link API
import Link from 'next/link'

const Index = () => (
 <div>
   <Link href="/about">
     <a>About Page</a>
   </Link>
   <p>Hello Next.js</p>
 </div>
)

export default Index

這里我們導(dǎo)入了 next/Link 作為鏈接帜篇,然后使用它:

<Link href="/about">
  <a>About Page</a>
</Link>

現(xiàn)在嘗試訪問 http://localhost:3000/

然后點擊“About Page”鏈接糙捺。它將導(dǎo)航你到“About”頁面。

這是客戶端導(dǎo)航;這個動作發(fā)生在瀏覽器中笙隙,不向服務(wù)器發(fā)出請求洪灯。
您可以通過打開瀏覽器的網(wǎng)絡(luò)請求檢查器來驗證這一點。

好了竟痰,現(xiàn)在我們有一個簡單的任務(wù):

  1. 訪問http://localhost:3000 /
  2. 然后點擊“About Page”
  3. 然后點擊瀏覽器的后退按鈕

你最好如何形容的后退按鈕的經(jīng)驗签钩?

客戶端訪問歷史支持

當(dāng)你點擊后退按鈕時,它通過客戶端將頁面導(dǎo)航到 index 頁面; next/link 為你處理了所有的 location.history

您甚至不需要編寫哪怕一行的客戶端路由代碼坏快。

Link的樣式

大多數(shù)時候,我們可能想要對我們的鏈接定義樣式铅檩。這就是我們?nèi)绾巫龅降?

<Link href="/about">
  <a style={{ fontSize: 20 }}>About Page</a>
</Link>

一旦添加了這個,您就可以看到該樣式正確地應(yīng)用了莽鸿。

那么這樣做會怎么樣呢?

<Link href="/about" style={{ fontSize: 20 }}>
  <a>About Page</a>
</Link>

上面的代碼發(fā)生了什么變化?

Link只是一個高階組件(HOC)

實際上昧旨,next/link 的樣式屬性支持沒有效果。那是因為 next/link 僅僅是一個高階組件祥得,它只接受“href”和一些類似的屬性兔沃。如果需要對其進(jìn)行樣式化,則需要對其底層組件進(jìn)行處理级及。

按鈕鏈接

假設(shè)我們需要使用一個“button”而不是一個錨點來連接我們的鏈接乒疏。然后我們需要像這樣編輯我們的導(dǎo)航代碼:

<Link href="/about">
  <button>Go to About Page</button>
</Link>

當(dāng)你點擊index頁面上的button時會發(fā)生什么?

Link適用于所有東西

就像一個button一樣,您可以在一個Link中放置任何定制的響應(yīng)組件甚至是div创千。

在一個Link中放置組件的唯一要求是缰雇,它們應(yīng)該接受一個onClick的屬性入偷。

鏈接很簡單追驴,但功能強(qiáng)大

這里我們只討論了 next/link 最基本的用法. 有一些有趣的方法來使用它,我們將在接下來的課程中學(xué)習(xí)它們疏之。

與此同時殿雪,我們來看看 Next.js 的路由文檔。你會發(fā)現(xiàn)它很有用锋爪。

本文翻譯自:https://learnnextjs.com/basics/navigate-between-pages

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末丙曙,一起剝皮案震驚了整個濱河市爸业,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亏镰,老刑警劉巖扯旷,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異索抓,居然都是意外死亡钧忽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門逼肯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耸黑,“玉大人,你說我怎么就攤上這事篮幢〈罂” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵三椿,是天一觀的道長缺菌。 經(jīng)常有香客問我,道長搜锰,這世上最難降的妖魔是什么男翰? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮纽乱,結(jié)果婚禮上蛾绎,老公的妹妹穿的比我還像新娘。我一直安慰自己鸦列,他們只是感情好租冠,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著薯嗤,像睡著了一般顽爹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骆姐,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天镜粤,我揣著相機(jī)與錄音,去河邊找鬼玻褪。 笑死肉渴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的带射。 我是一名探鬼主播同规,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了券勺?” 一聲冷哼從身側(cè)響起绪钥,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎关炼,沒想到半個月后程腹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡儒拂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年跪楞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侣灶。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡避消,死狀恐怖封豪,靈堂內(nèi)的尸體忽然破棺而出鹏氧,到底是詐尸還是另有隱情离例,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布凡怎,位于F島的核電站校焦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏统倒。R本人自食惡果不足惜寨典,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望房匆。 院中可真熱鬧耸成,春花似錦、人聲如沸浴鸿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岳链。三九已至花竞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掸哑,已是汗流浹背约急。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留苗分,地道東北人厌蔽。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像俭嘁,于是被迫代替她去往敵國和親躺枕。 傳聞我的和親對象是個殘疾皇子服猪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,501評論 25 707
  • 第5章 菜單供填、按鈕及導(dǎo)航 一拐云、下拉菜單 小伙伴們注意,在Bootstrap框架中的下拉菜單組件是一個獨立的組件近她,根...
    凜0_0閱讀 4,938評論 0 66
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案叉瘩? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評論 1 92
  • 其實一開始的時候,也做過一些客戶檔案粘捎,也想過做回訪記錄薇缅,可是,一直是個思想上的閃電俠攒磨,行動上的寒號鳥?_? 心塞 ...
    卓芳閱讀 159評論 0 0
  • @兇巴巴爛北北 我曾經(jīng)假想過一種很糟糕的生活方式 那就是今天不少人在唱的北上廣頌歌 我還假想過一種更糟糕的生活方式...
    兇巴巴爛北北閱讀 137評論 0 0