現在讓我們嘗試再次運行 pnpm dev。當你造訪 http://localhost:5173/blog/6 時,你應該會得到這個。

\\\"Vue

太棒了,對吧?我希望這篇簡短的部落格對您的 VueJS 之旅有所幫助。祝你有美好的一天。

如果您喜歡這篇文章並想表達您的支持,您可以透過為我買杯咖啡來輕鬆實現。非常感謝您的貢獻!


如果您喜歡這篇文章並想表達您的支持,您可以透過為我買杯咖啡來輕鬆實現。非常感謝您的貢獻!

\\\"Vue

","image":"http://www.luping.net","datePublished":"2024-07-30T09:26:03+08:00","dateModified":"2024-07-30T09:26:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Vue uto 透過檔案結構進行路由

Vue uto 透過檔案結構進行路由

發佈於2024-07-30
瀏覽:694

我在使用 VueJS 時遇到的一個問題是創建路由時,特別是當專案變得越來越大並且試圖維護你的 Route.ts 或 Route.js 時就會出現問題。我還記得一個項目,它有太多的頁面,當你創建一個新頁面時,你必須更新你的路由,當你刪除一個頁面時,你必須更新你的路由文件,以避免錯誤。

所以我開始尋找如何使用基於檔案的自動路由。嘗試在 google 中搜尋很難找到,因為我在網路上找到的大部分結果主要是針對 webpack 和版本 2。所以我必須在 Vue Github 存儲庫討論中詢問它,我得到了答案。

Unplugin Vue Router 簡介,這是 Vue 3 的類型化、基於檔案的路由。而且實際上很容易設置它。正如他們在 Github 自述文件中所述,這是實驗性的。

首先讓我們從頭開始創建我們的 Vue 專案。眾所周知,我們可以透過執行這個命令來產生一個項目,然後回答一些選項。如果您不熟悉如何操作,可以查看 VueJs 頁面中的快速入門。

pnpm create vue@latest

所以在這個例子中,這就是我創建專案的方式。

pnpm create vue@latest

Vue.js - The Progressive JavaScript Framework

√ Project name: ... vue-auto-route
√ Add TypeScript? ... No / Yes
√ Add JSX Support? ... No / Yes
√ Add Vue Router for Single Page Application development? ... No / Yes
√ Add Pinia for state management? ... No / Yes
√ Add Vitest for Unit Testing? ... No / Yes
√ Add an End-to-End Testing Solution? » No
√ Add ESLint for code quality? ... No / Yes
√ Add Vue DevTools 7 extension for debugging? (experimental) ... No / Yes

Scaffolding project in D:\Projects\Testing\vue-auto-route...

Done. Now run:

  cd vue-auto-route
  pnpm install
  pnpm dev

我們將選擇 Select TypeScript。我還啟用了路由器,以便它自動為我重新生成頁面。

讓 cd 進入我們的項目,並安裝依賴項。因此,根據您使用的套件管理器,您可以使用它。對我來說,我正在使用 pnpm,我開始喜歡它。現在,一旦我們的專案建立完成,我們現在必須安裝 unplugin-vue-router。

pnpm add -D unplugin-vue-router

現在,讓我們更新 vite.config.ts 。 確保將外掛程式放在索引 0.

import { fileURLToPath, URL } from "node:url";
import VueRouter from "unplugin-vue-router/vite";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

// https://vitejs.dev/config/
export default defineConfig({
    plugins: [
        VueRouter({
            /* options */
        }),
        // ⚠️ Vue must be placed after VueRouter()
        vue(),
    ],
    resolve: {
        alias: {
            "@": fileURLToPath(new URL("./src", import.meta.url)),
        },
    },

});

下一步讓我們更新 env.d.ts,以便我們的編輯器可以輕鬆找到我們的套件的類型。

/// 
/// 

然後讓我們更新 src/router/index.ts 中的路由器index.ts。

import { createRouter, createWebHistory } from "vue-router";
import { routes, handleHotUpdate } from "vue-router/auto-routes";

const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes,
});

if (import.meta.hot) {
    handleHotUpdate(router);
}

export default router;

現在一切都完成了,我們現在可以建立 src/pages 目錄,在這個資料夾或目錄中我們新增頁面,它會根據檔案結構自動建立路由。如果你熟悉 Nuxt,它就是類似的東西。

讓我們在 src\pages\about.vue 中建立 about 頁面。


讓我們使用 src\pages\index.vue 中的索引來建立我們的主頁。


然後我們可以透過執行 dev 腳本來執行我們的 vue 應用程式。 PNPM 開發公司 他們走了,如果您單擊“主頁”,您將被重定向到主頁,如果您單擊“關於”,您將被重定向到關於頁面。

現在,一切都為您準備好了。如果您不熟悉路由器資料夾結構。您可以查看此文件https://uvr.esm.is/guide/file-based-routing.html。

讓我們嘗試新增一個 slug 元件,例如 src/pages/blog/[id].vue 並包含此內容。



現在讓我們嘗試再次運行 pnpm dev。當你造訪 http://localhost:5173/blog/6 時,你應該會得到這個。

Vue uto Routing By File Structure

太棒了,對吧?我希望這篇簡短的部落格對您的 VueJS 之旅有所幫助。祝你有美好的一天。

如果您喜歡這篇文章並想表達您的支持,您可以透過為我買杯咖啡來輕鬆實現。非常感謝您的貢獻!


如果您喜歡這篇文章並想表達您的支持,您可以透過為我買杯咖啡來輕鬆實現。非常感謝您的貢獻!

Vue uto Routing By File Structure

版本聲明 本文轉載於:https://dev.to/jenueldev/vue-3-auto-routing-by-file-structure-2hac?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在GO編譯器中自定義編譯優化?
    如何在GO編譯器中自定義編譯優化?
    在GO編譯器中自定義編譯優化 GO中的默認編譯過程遵循特定的優化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    程式設計 發佈於2025-05-04
  • 為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    查詢模式實現缺失:解決“無法找到”錯誤在Silverlight應用程序中,嘗試使用LINQ建立LINQ連接以錯誤而實現的數據庫”,無法找到查詢模式的實現。”當省略LINQ名稱空間或查詢類型缺少IEnumerable 實現時,通常會發生此錯誤。 解決問題來驗證該類型的質量是至關重要的。在此特定實例...
    程式設計 發佈於2025-05-04
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-05-04
  • 如何使用Depimal.parse()中的指數表示法中的數字?
    如何使用Depimal.parse()中的指數表示法中的數字?
    在嘗試使用Decimal.parse(“ 1.2345e-02”中的指數符號表示法表示的字符串時,您可能會遇到錯誤。這是因為默認解析方法無法識別指數符號。 成功解析這樣的字符串,您需要明確指定它代表浮點數。您可以使用numbersTyles.Float樣式進行此操作,如下所示:[&& && && ...
    程式設計 發佈於2025-05-04
  • 為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    為什麼我會收到MySQL錯誤#1089:錯誤的前綴密鑰?
    mySQL錯誤#1089:錯誤的前綴鍵錯誤descript [#1089-不正確的前綴鍵在嘗試在表中創建一個prefix鍵時會出現。前綴鍵旨在索引字符串列的特定前綴長度長度,以便更快地搜索這些前綴。 理解prefix keys `這將在整個Movie_ID列上創建標準主鍵。主密鑰對於唯一識...
    程式設計 發佈於2025-05-04
  • 如何在Java的全屏獨家模式下處理用戶輸入?
    如何在Java的全屏獨家模式下處理用戶輸入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    程式設計 發佈於2025-05-04
  • 為什麼PYTZ最初顯示出意外的時區偏移?
    為什麼PYTZ最初顯示出意外的時區偏移?
    與pytz 最初從pytz獲得特定的偏移。例如,亞洲/hong_kong最初顯示一個七個小時37分鐘的偏移: 差異源利用本地化將時區分配給日期,使用了適當的時區名稱和偏移量。但是,直接使用DateTime構造器分配時區不允許進行正確的調整。 example pytz.timezone(&#...
    程式設計 發佈於2025-05-04
  • 反射動態實現Go接口用於RPC方法探索
    反射動態實現Go接口用於RPC方法探索
    在GO 使用反射來實現定義RPC式方法的界面。例如,考慮一個接口,例如:鍵入myService接口{ 登錄(用戶名,密碼字符串)(sessionId int,錯誤錯誤) helloworld(sessionid int)(hi String,錯誤錯誤) } 替代方案而不是依靠反射...
    程式設計 發佈於2025-05-04
  • 如何使用PHP從XML文件中有效地檢索屬性值?
    如何使用PHP從XML文件中有效地檢索屬性值?
    從php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    程式設計 發佈於2025-05-04
  • Java為何無法創建泛型數組?
    Java為何無法創建泛型數組?
    通用陣列創建錯誤 arrayList [2]; JAVA報告了“通用數組創建”錯誤。為什麼不允許這樣做? 答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<my...
    程式設計 發佈於2025-05-04
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-05-04
  • PHP SimpleXML解析帶命名空間冒號的XML方法
    PHP SimpleXML解析帶命名空間冒號的XML方法
    在php 很少,請使用該限制很大,很少有很高。例如:這種技術可確保可以通過遍歷XML樹和使用兒童()方法()方法的XML樹和切換名稱空間來訪問名稱空間內的元素。
    程式設計 發佈於2025-05-04
  • 如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    在Visual Studio 2012 儘管已安裝了MySQL Connector v.6.5.4,但無法將MySQL數據庫添加到實體框架的“ DataSource對話框”中。為了解決這一問題,至關重要的是要了解MySQL連接器v.6.5.5及以後的6.6.x版本將提供MySQL的官方Visual...
    程式設計 發佈於2025-05-04
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-05-04
  • 為什麼HTML無法打印頁碼及解決方案
    為什麼HTML無法打印頁碼及解決方案
    無法在html頁面上打印頁碼? @page規則在@Media內部和外部都無濟於事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: ...
    程式設計 發佈於2025-05-04

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3