首頁  >  文章  >  web前端  >  一文帶你去看看Vue Router4中的酷炫功能

一文帶你去看看Vue Router4中的酷炫功能

青灯夜游
青灯夜游轉載
2021-05-24 10:59:072642瀏覽

這篇文章和大家一下了解下Vue Router4中的酷炫功能。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

一文帶你去看看Vue Router4中的酷炫功能

Vue Router 4 已經發佈了,讓我們來看看新版本中有哪些很酷的功能。 【相關推薦:《vue.js教學》】

Vue3 支援

Vue 3 引進了createApp API,該API更改了將插件新增到Vue實例的方式。因此,先前版本的Vue Router將與Vue3不相容。

Vue Router 4 引進了createRouter API,該API建立了一個可以在Vue3中安裝 router 實例。

// src/router/index.js

import { createRouter } from "vue-router";

export default createRouter({
  routes: [...],
});
// src/main.js

import { createApp } from "vue";
import router from "./router";

const app = createApp({});
app.use(router);
app.mount("#app");

History 選項

在 Vue Router的早期版本中,我們可以mode 屬性來指定路由的模式。

hash 模式使用URL哈希來模擬完整的URL,以便在URL更改時不會重新載入頁面。 history 模式利用 HTML5 History API 來實作URL導航,也是無需重新載入頁面。

// Vue Router 3
const router = new VueRouter({
  mode: "history",
  routes: [...]
});

在Vue Router 4中,這些模式已被抽像到模組中,可以將其匯入並指派給新的history 選項。這種額外的靈活性讓我們可以根據需要自訂路由器。

// Vue Router 4
import { createRouter, createWebHistory } from "vue-router";

export default createRouter({
  history: createWebHistory(),
  routes: [],
});

動態路由

Vue Router 4 提供了addRoute 方法實作動態路由。

這個方法平常比較少用到,但是確實有一些有趣的用例。例如,假設我們要為檔案系統應用程式建立UI,並且要動態新增路徑。我們可以按照以下方式進行操作:

methods: {
  uploadComplete (id) {
    router.addRoute({
      path: `/uploads/${id}`,
      name: `upload-${id}`,
      component: FileInfo
    });
  }
}

我們也可以使用以下相關方法:

  • #removeRoute
  • hasRoute
  • getRoutes

導航守衛可以傳回值並非next

#導航守衛是Vue Router的鉤子,允許使用者在跳轉之前或之後運行自訂邏輯,例如beforeEachbeforeRouterEnter等。

它們通常用於檢查使用者是否有權存取某個頁面,驗證動態路由參數或銷毀偵聽器。

在版本4中,我們可以從hook 方法中傳回值或P​​romise。這樣可以方便快速地進行如下操作:

// Vue Router 3
router.beforeEach((to, from, next) => {
  if (!isAuthenticated) {
    next(false);
  }
  else { 
    next();
  }
})

// Vue Router 4
router.beforeEach(() => isAuthenticated);

這些只是版本4中新增的一些新特性,大家可以到​​官網去了解更多的資訊。

英文原文網址:https://vuejsdevelopers.com/topics/vue-router/

作者:Matt Maribojoc

##更多程式相關知識,請訪問:

編程視頻! !

以上是一文帶你去看看Vue Router4中的酷炫功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除