日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

分享七個你可能不知道的 Next.js 14 小技巧

來源: 責(zé)編: 時間:2024-04-02 17:23:30 180觀看
導(dǎo)讀NextJS 14的發(fā)布不僅僅是一個簡單的更新,它代表了對開發(fā)者體驗(yàn)和應(yīng)用速度的全新關(guān)注。對于使用React的開發(fā)者來說,NextJS 14承諾帶來更快速、更愉快的開發(fā)體驗(yàn)。無論是新項(xiàng)目的開始,還是現(xiàn)有項(xiàng)目的升級,NextJS 14都值得一

z3Q28資訊網(wǎng)——每日最新資訊28at.com

NextJS 14的發(fā)布不僅僅是一個簡單的更新,它代表了對開發(fā)者體驗(yàn)和應(yīng)用速度的全新關(guān)注。對于使用React的開發(fā)者來說,NextJS 14承諾帶來更快速、更愉快的開發(fā)體驗(yàn)。無論是新項(xiàng)目的開始,還是現(xiàn)有項(xiàng)目的升級,NextJS 14都值得一試。z3Q28資訊網(wǎng)——每日最新資訊28at.com

今天,我將向大家介紹一些關(guān)于NextJS的概念,這些可能是許多開發(fā)者所不知道的。你可以利用這些概念來優(yōu)化你的應(yīng)用,并改善開發(fā)者體驗(yàn)。z3Q28資訊網(wǎng)——每日最新資訊28at.com

1. 路由分組:整理雜亂的文件結(jié)構(gòu)(Route Groups)

在開發(fā)大型Web應(yīng)用時,文件夾結(jié)構(gòu)可能會變得復(fù)雜混亂,特別是在處理路由時。NextJS提供了一種稱為路由分組的功能,可以幫助你更有效地組織路由結(jié)構(gòu)。z3Q28資訊網(wǎng)——每日最新資訊28at.com

混亂的文件結(jié)構(gòu):

在沒有使用路由分組的情況下,你可能會在pages文件夾中看到許多雜亂無章的路由文件,這使得找到特定路由變得困難。z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

使用路由分組整理:

通過使用路由分組,你可以將相關(guān)的路由放在同一個文件夾(即路由組文件夾)下。這樣,你就可以根據(jù)不同主題或功能輕松地找到相關(guān)路由。z3Q28資訊網(wǎng)——每日最新資訊28at.com

例如,你可以創(chuàng)建一個名為auth的路由組文件夾,然后將所有與認(rèn)證相關(guān)的路由(如登錄、注冊)放在這個文件夾下。z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

路由分組的優(yōu)勢:

  • 清晰的文件結(jié)構(gòu):通過路由分組,你的項(xiàng)目結(jié)構(gòu)將更加清晰有序。
  • 易于維護(hù):分組后的結(jié)構(gòu)使得維護(hù)特定功能或模塊的路由更加容易。
  • 不影響URL結(jié)構(gòu):值得注意的是,路由分組不會在URL中添加文件夾名稱。例如,即使有一個名為auth的分組文件夾,URL仍然是http://localhost:3000/sign-in,而不是http://localhost:3000/auth/sign-in。

z3Q28資訊網(wǎng)——每日最新資訊28at.com

在app目錄下的任意目錄中創(chuàng)建_components文件夾

在app目錄的任何子目錄中創(chuàng)建一個以下劃線開頭的文件夾(如_components),這樣的文件夾和其中的文件不會被Next.js當(dāng)作頁面來處理。z3Q28資訊網(wǎng)——每日最新資訊28at.com

例如,在app目錄下的favourite目錄中創(chuàng)建一個_components文件夾:z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

在目錄中創(chuàng)建不直接提供給客戶端的文件

在特定目錄中創(chuàng)建文件,這些文件不會直接作為頁面提供給客戶端,除非它們被顯式地添加到page.tsx文件中。z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

5. 捕獲所有段(Catch-all Segments)

在Next.js中,動態(tài)路由可以通過在括號內(nèi)添加省略號[...segmentName]來擴(kuò)展為捕獲所有后續(xù)的段。z3Q28資訊網(wǎng)——每日最新資訊28at.com

示例說明

例如,路徑/docs/[...slug]/page.tsx不僅會匹配/docs/topic,還會匹配/docs/topic/1等更深層次的路由。但是,如果URL是/docs,它會返回一個404錯誤。z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

代碼片段

import React from 'react';type Params = {    params: {        slug: string[]    }};export default function SlugPage({ params: { slug } }: Params) {    return (        <div>            <h1>Viewing Custom Slug Page</h1>            <span>URL Contains: {slug.toString()} </span>        </div>    );}

在這個代碼片段中,我們定義了一個SlugPage組件,它接收slug作為參數(shù),并將其轉(zhuǎn)換為字符串顯示在頁面上。z3Q28資訊網(wǎng)——每日最新資訊28at.com

解決404錯誤

你可能想知道是否有辦法解決/docs這個路由的404錯誤。答案是肯定的,你可以通過一些方法來解決這個問題,答案在下面,請繼續(xù)往下看z3Q28資訊網(wǎng)——每日最新資訊28at.com

6. 可選的捕獲所有段(Optional Catch-All Segments)

在Next.js中,通過將參數(shù)放在雙方括號中:[[...segmentName]],可以使捕獲所有段成為可選的。z3Q28資訊網(wǎng)——每日最新資訊28at.com

例如,路由/docs/[[...slug]]/page.tsx不僅會匹配/docs/topic、/docs/topic/10等路由,還會匹配/docs本身。z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

可選的捕獲所有段與普通捕獲所有段的區(qū)別

  • 普通捕獲所有段:必須包含至少一個參數(shù),例如/docs/topic。
  • 可選的捕獲所有段:可以匹配沒有任何參數(shù)的路由,例如/docs。

7. 活動鏈接(Active Links)

在網(wǎng)站上,你可能注意到當(dāng)前正在查看的頁面鏈接往往有特殊的樣式或覆蓋層。這是一種提升用戶體驗(yàn)的常用方法。今天,我將介紹如何實(shí)現(xiàn)這一功能。z3Q28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建一個導(dǎo)航欄組件

首先,在components目錄中創(chuàng)建一個名為Navbar.tsx的文件。這將是一個客戶端組件,因?yàn)橛脩魧⑴c導(dǎo)航欄互動。在文件頂部添加“use client”指令,并從next/navigation中導(dǎo)入一個名為usePathname的鉤子。z3Q28資訊網(wǎng)——每日最新資訊28at.com

示例代碼

"use client";import Link from 'next/link';import { usePathname } from 'next/navigation';import React from 'react';type Links = {    title: string,    url: string};export default function Navbar() {    const links: Links[] = [        {            title: "Sign In",            url: "/sign-in"        },        {            title: "Favourite",            url: "/favourite/1"        },    ];    const pathname = usePathname();    return (        <div className='flex space-x-4'>            {links.map(({ title, url }: Links) => {                const isActive = pathname.startsWith(url);                return <Link                    className={isActive ? "font-bold text-emerald-500" : "text-white"}                    key={title}                    href={url}>                    {title}                </Link>            })}        </div>    )}

解釋代碼

  • 定義鏈接:通過創(chuàng)建一個名為links的常量來定義你想要在導(dǎo)航欄中顯示的鏈接。
  • 映射鏈接:使用map方法遍歷links數(shù)組,并為每個鏈接生成一個Link組件。
  • 活動鏈接樣式:使用usePathname鉤子獲取當(dāng)前的路徑。然后通過比較當(dāng)前路徑和鏈接的url,決定是否為該鏈接應(yīng)用活動狀態(tài)的樣式。

效果

當(dāng)用戶點(diǎn)擊其中一個鏈接時,該鏈接的文本顏色會改變,這表明了用戶當(dāng)前所處的頁面。例如,點(diǎn)擊“Sign In”鏈接后,文本顏色變化,從而增強(qiáng)了用戶體驗(yàn)。z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

z3Q28資訊網(wǎng)——每日最新資訊28at.com

注意事項(xiàng)

確保你要使用的路由URL已經(jīng)存在,否則會出現(xiàn)404錯誤。z3Q28資訊網(wǎng)——每日最新資訊28at.com

通過以上步驟,你可以在Next.js應(yīng)用中創(chuàng)建一個具有活動狀態(tài)樣式的導(dǎo)航欄,這不僅讓用戶界面看起來更加友好,還能提高用戶的導(dǎo)航體驗(yàn)。z3Q28資訊網(wǎng)——每日最新資訊28at.com

結(jié)束

隨著NextJS 14的發(fā)布,我們見證了前端開發(fā)領(lǐng)域的一次重大變革。這個版本不僅加強(qiáng)了對開發(fā)者體驗(yàn)的關(guān)注,還通過諸如路由分組、動態(tài)元數(shù)據(jù)、私有路由、可選的捕獲所有段以及活動鏈接等功能,大幅提升了應(yīng)用的性能和可用性。這些創(chuàng)新特性不僅簡化了復(fù)雜應(yīng)用的開發(fā)和維護(hù),也為最終用戶帶來了更加流暢和直觀的瀏覽體驗(yàn)。NextJS 14的這些優(yōu)化措施,無疑將助力開發(fā)者構(gòu)建更加高效、更加用戶友好的現(xiàn)代Web應(yīng)用。作為React開發(fā)者,掌握并應(yīng)用這些新特性,將是我們適應(yīng)和引領(lǐng)前端技術(shù)潮流的關(guān)鍵。讓我們擁抱NextJS 14,共同開啟前端開發(fā)的新篇章!z3Q28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-80889-0.html分享七個你可能不知道的 Next.js 14 小技巧

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 利用生成對抗性網(wǎng)絡(luò)進(jìn)行欺詐檢測

下一篇: 提高生產(chǎn)力!這10個Lambda表達(dá)式必須掌握,開發(fā)效率嘎嘎上升!

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 万盛区| 拉萨市| 新平| 枞阳县| 永川市| 巴彦县| 桂平市| 潢川县| 莒南县| 襄樊市| 突泉县| 元氏县| 许昌市| 淮安市| 兰州市| 明光市| 东兰县| 苍梧县| 玛曲县| 禄劝| 青浦区| 慈溪市| 闽清县| 新民市| 富阳市| 南城县| 老河口市| 定日县| 观塘区| 温宿县| 石嘴山市| 中宁县| 柘城县| 和静县| 宜宾市| 巨野县| 阿巴嘎旗| 十堰市| 定襄县| 元谋县| 东乡族自治县|