国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 js教程 中間件:它們是什麼以及如何在 Nuxt.JS 中使用它們

中間件:它們是什麼以及如何在 Nuxt.JS 中使用它們

Jan 14, 2025 pm 10:41 PM

什麼是中間件?

在前端,中間件導(dǎo)航到新頁面之前執(zhí)行的程式碼區(qū)塊,允許我們在應(yīng)用程式中執(zhí)行各種控制,例如:

  • 驗證:檢查使用者是否已登錄,否則將被重新導(dǎo)向至登入畫面。
  • 權(quán)限:檢查使用者是否有權(quán)限存取該頁面,如果沒有,則重定向到有權(quán)限的頁面。
  • 日誌:保存頁面資訊的資訊。

中間件作為中間層,從頁面載入開始直到完成渲染。

此中間件功能存在於現(xiàn)代前端框架中,例如 Next.js 和 Nuxt.JS。

在這篇文章中,我將教你如何在 Nuxt.JS 中實作路由中間件。

以不太技術(shù)性的方式使用中介軟體

Middlewares: O que s?o e como utilizar no Nuxt.JS

為了更簡單解釋,我打個比方:

想像一下,你要加入一個派對,在這個過程中你會經(jīng)過三名派對保安人員,他們就是“中間件”,每人負責(zé)執(zhí)行一項具體的操作。

  1. 第一個保全會檢查您是否有票,是否有效,類似於身分驗證中間件,如果您沒有票,您將被重定向到售票處或登入畫面。

  2. 第二個保全會檢查你是否達到法定年齡,這是進入聚會的基本要求,類似於權(quán)限中間件。如果您沒有必要的進入權(quán)限,您將被重新導(dǎo)向到隊伍佇列之外。

  3. 第三個也是最後一個保全會給你一個識別手環(huán),表明你是否有權(quán)訪問聚會的 VIP 區(qū)域,類似於可以向請求添加資料的中間件。

最後,完成前面的所有步驟後,您就可以自由進入派對房間了。

中介軟體類型

在 Nuxt.js 中,我們有以下類型的中間件:

  • 全球
  • 內(nèi)聯(lián)或匿名
  • 提名者
  1. 全域中間件在 /middleware 資料夾中建立並在所有頁面上運行。您需要添加全域後綴。
/*
  Exemplo de middleware Global:
  Esse middleware verifica se a URL/rota buscada existe.
  Caso n?o exista o usuário é redirecionado para página de links.

  Nome e Diretório do arquivo:
  /middleware/notFound.global.js
*/

export default defineNuxtRouteMiddleware((to) => {
  const hasFoundRoute = to.matched.length > 0;

  if (!hasFoundRoute) {
    return navigateTo({
      path: "/links"
    });
  }
});
  1. 內(nèi)嵌或匿名中間件是特定於頁面的中間件,直接在 Nuxt 的頁面檔案中定義;這限制了程式碼的重複使用,因為它不能輕鬆地與其他頁面共用。
/*
  Exemplo de middleware inline:
  Esse middleware verifica se os dados est?o presentes na store.
  Caso n?o esteja, os dados ser?o requisitados.
*/

<script setup lang="ts">
import { useStore } from 'vuex';

definePageMeta({
  middleware: [
    async function (to, from) {
      const store = useStore();
      if (!store.state.user) {
        await store.dispatch("fetchUser");
      }
    },
  ],
});
</script>
  1. 命名中間件在 /middleware 資料夾內(nèi)建立。
/*
  Exemplo de middleware Nomeado:
  Esse middleware verifica o usuário está logado.
  Caso n?o esteja logado, ele é redirecionado para página de login.

  Nome e Diretório do arquivo:
  /middleware/auth.js
*/

export default defineNuxtRouteMiddleware((to, from) => {
  const { $store } = useNuxtApp();

  if (!$store.auth?.loggedIn) {
    return navigateTo("/login");
  }
});

在命名中間件中,需要定義哪些頁面使用某個中間件,實現(xiàn)此目的的方法之一是更改將使用該中間件的頁面的文件:

<script setup>
definePageMeta({
  middleware: "auth-admin"
});
</script>

同樣重要的是,即使您以 PascalCase 或 CamelCase 等模式命名中間件文件,文件名也會標準化為 kebab-case 模式。

結(jié)論

希望透過這篇文章,我能夠簡單快速地向您解釋在 Nuxt.JS 中創(chuàng)建和使用中間件的要點???♂?。

如果您需要更多有關(guān)Nuxt.JS中中間件的信息,可以搜尋官方文件。

以上是中間件:它們是什麼以及如何在 Nuxt.JS 中使用它們的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在JS中與日期和時間合作? 如何在JS中與日期和時間合作? Jul 01, 2025 am 01:27 AM

JavaScript中的日期和時間處理需注意以下幾點:1.創(chuàng)建Date對像有多種方式,推薦使用ISO格式字符串以保證兼容性;2.獲取和設(shè)置時間信息可用get和set方法,注意月份從0開始;3.手動格式化日期需拼接字符串,也可使用第三方庫;4.處理時區(qū)問題建議使用支持時區(qū)的庫,如Luxon。掌握這些要點能有效避免常見錯誤。

為什麼要將標籤放在的底部? 為什麼要將標籤放在的底部? Jul 02, 2025 am 01:22 AM

PlacingtagsatthebottomofablogpostorwebpageservespracticalpurposesforSEO,userexperience,anddesign.1.IthelpswithSEObyallowingsearchenginestoaccesskeyword-relevanttagswithoutclutteringthemaincontent.2.Itimprovesuserexperiencebykeepingthefocusonthearticl

什麼是在DOM中冒泡和捕獲的事件? 什麼是在DOM中冒泡和捕獲的事件? Jul 02, 2025 am 01:19 AM

事件捕獲和冒泡是DOM中事件傳播的兩個階段,捕獲是從頂層向下到目標元素,冒泡是從目標元素向上傳播到頂層。 1.事件捕獲通過addEventListener的useCapture參數(shù)設(shè)為true實現(xiàn);2.事件冒泡是默認行為,useCapture設(shè)為false或省略;3.可使用event.stopPropagation()阻止事件傳播;4.冒泡支持事件委託,提高動態(tài)內(nèi)容處理效率;5.捕獲可用於提前攔截事件,如日誌記錄或錯誤處理。了解這兩個階段有助於精確控制JavaScript響應(yīng)用戶操作的時機和方式。

如何減少JavaScript應(yīng)用程序的有效載荷大?。? />
								</a>
								<a href=如何減少JavaScript應(yīng)用程序的有效載荷大??? Jun 26, 2025 am 12:54 AM

如果JavaScript應(yīng)用加載慢、性能差,問題往往出在payload太大,解決方法包括:1.使用代碼拆分(CodeSplitting),通過React.lazy()或構(gòu)建工具將大bundle拆分為多個小文件,按需加載以減少首次下載量;2.移除未使用的代碼(TreeShaking),利用ES6模塊機制清除“死代碼”,確保引入的庫支持該特性;3.壓縮和合併資源文件,啟用Gzip/Brotli和Terser壓縮JS,合理合併文件並優(yōu)化靜態(tài)資源;4.替換重型依賴,選用輕量級庫如day.js、fetch

JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS JavaScript模塊上的確定JS綜述:ES模塊與COMPORJS Jul 02, 2025 am 01:28 AM

ES模塊和CommonJS的主要區(qū)別在於加載方式和使用場景。 1.CommonJS是同步加載,適用於Node.js服務(wù)器端環(huán)境;2.ES模塊是異步加載,適用於瀏覽器等網(wǎng)絡(luò)環(huán)境;3.語法上,ES模塊使用import/export,且必須位於頂層作用域,而CommonJS使用require/module.exports,可在運行時動態(tài)調(diào)用;4.CommonJS廣泛用於舊版Node.js及依賴它的庫如Express,ES模塊則適用於現(xiàn)代前端框架和Node.jsv14 ;5.雖然可混合使用,但容易引發(fā)問題

如何在node.js中提出HTTP請求? 如何在node.js中提出HTTP請求? Jul 13, 2025 am 02:18 AM

在Node.js中發(fā)起HTTP請求有三種常用方式:使用內(nèi)置模塊、axios和node-fetch。 1.使用內(nèi)置的http/https模塊無需依賴,適合基礎(chǔ)場景,但需手動處理數(shù)據(jù)拼接和錯誤監(jiān)聽,例如用https.get()獲取數(shù)據(jù)或通過.write()發(fā)送POST請求;2.axios是基於Promise的第三方庫,語法簡潔且功能強大,支持async/await、自動JSON轉(zhuǎn)換、攔截器等,推薦用於簡化異步請求操作;3.node-fetch提供類似瀏覽器fetch的風(fēng)格,基於Promise且語法簡單

編寫清潔和可維護的JavaScript代碼的最佳實踐是什麼? 編寫清潔和可維護的JavaScript代碼的最佳實踐是什麼? Jun 23, 2025 am 12:35 AM

要寫出乾淨(jìng)、可維護的JavaScript代碼,應(yīng)遵循以下四點:1.使用清晰一致的命名規(guī)範,變量名用名詞如count,函數(shù)名用動詞開頭如fetchData(),類名用PascalCase如UserProfile;2.避免過長函數(shù)和副作用,每個函數(shù)只做一件事,如將更新用戶信息拆分為formatUser、saveUser和renderUser;3.合理使用模塊化和組件化,如在React中將頁面拆分為UserProfile、UserStats等小組件;4.寫註釋和文檔時點到為止,重點說明關(guān)鍵邏輯、算法選

var vs Let vs const:快速JS綜述解釋器 var vs Let vs const:快速JS綜述解釋器 Jul 02, 2025 am 01:18 AM

var、let和const的區(qū)別在於作用域、提升和重複聲明。 1.var是函數(shù)作用域,存在變量提升,允許重複聲明;2.let是塊級作用域,存在暫時性死區(qū),不允許重複聲明;3.const也是塊級作用域,必須立即賦值,不可重新賦值,但可修改引用類型的內(nèi)部值。優(yōu)先使用const,需改變變量時用let,避免使用var。

See all articles