自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇學(xué)會(huì)Vue Router 4 的變化及炫酷特性

開(kāi)發(fā) 前端
Vue 3 引入了createApp API,該API更改了將插件添加到Vue實(shí)例的方式。因此,以前版本的Vue Router將與Vue3不兼容。

[[399415]]

Vue Router 4 已經(jīng)發(fā)布了,我們來(lái)看看新版本中有哪些很酷的特性。

Vue3 支持

Vue 3 引入了createApp API,該API更改了將插件添加到Vue實(shí)例的方式。因此,以前版本的Vue Router將與Vue3不兼容。

Vue Router 4 引入了createRouter API,該API創(chuàng)建了一個(gè)可以在Vue3中安裝 router 實(shí)例。

  1. // src/router/index.js 
  2.  
  3. import { createRouter } from "vue-router"
  4.  
  5. export default createRouter({ 
  6.   routes: [...], 
  7. }); 
  1. // src/main.js 
  2.  
  3. import { createApp } from "vue"
  4. import router from "./router"
  5.  
  6. const app = createApp({}); 
  7. app.use(router); 
  8. app.mount("#app"); 

History 選項(xiàng)

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

hash 模式使用URL哈希來(lái)模擬完整的URL,以便在URL更改時(shí)不會(huì)重新加載頁(yè)面。history 模式利用 HTML5 History API 來(lái)實(shí)現(xiàn)URL導(dǎo)航,也是無(wú)需重新加載頁(yè)面。

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

在Vue Router 4中,這些模式已被抽象到模塊中,可以將其導(dǎo)入并分配給新的history 選項(xiàng)。這種額外的靈活性讓我們可以根據(jù)需要自定義路由器。

  1. // Vue Router 4 
  2. import { createRouter, createWebHistory } from "vue-router"
  3.  
  4. export default createRouter({ 
  5.   history: createWebHistory(), 
  6.   routes: [], 
  7. }); 

動(dòng)態(tài)路由

Vue Router 4 提供了addRoute方法實(shí)現(xiàn)動(dòng)態(tài)路由。

這個(gè)方法平時(shí)比較少用到,但是確實(shí)有一些有趣的用例。例如,假設(shè)我們要為文件系統(tǒng)應(yīng)用程序創(chuàng)建UI,并且要?jiǎng)討B(tài)添加路徑。我們可以按照以下方式進(jìn)行操作:

  1. methods: { 
  2.   uploadComplete (id) { 
  3.     router.addRoute({ 
  4.       path: `/uploads/${id}`, 
  5.       name: `upload-${id}`, 
  6.       component: FileInfo 
  7.     }); 
  8.   } 

我們還可以使用以下相關(guān)方法:

  • removeRoute
  • hasRoute
  • getRoutes

導(dǎo)航守衛(wèi)可以返回值并非next

導(dǎo)航守衛(wèi)是Vue Router的鉤子,允許用戶(hù)在跳轉(zhuǎn)之前或之后運(yùn)行自定義邏輯,例如 beforeEach,beforeRouterEnter等。

它們通常用于檢查用戶(hù)是否有權(quán)訪問(wèn)某個(gè)頁(yè)面,驗(yàn)證動(dòng)態(tài)路由參數(shù)或銷(xiāo)毀偵聽(tīng)器。

在版本4中,我們可以從hook 方法中中返回值或Promise。這樣可以方便快捷地進(jìn)行如下操作:

  1. // Vue Router 3 
  2. router.beforeEach((tofromnext) => { 
  3.   if (!isAuthenticated) { 
  4.     next(false); 
  5.   } 
  6.   else {  
  7.     next(); 
  8.   } 
  9. }) 
  10.  
  11. // Vue Router 4 
  12. router.beforeEach(() => isAuthenticated); 

這些只是版本4中添加的一些新特性,大家可以到官網(wǎng)去了解一下更多的信息。

~完,我是前端小智,去保建了,我們下期見(jiàn)~

作者:Matt Maribojoc 譯者:前端小智 來(lái)源:stackabuse

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

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2022-01-02 08:43:46

Python

2022-02-07 11:01:23

ZooKeeper

2021-08-01 07:19:16

語(yǔ)言OpenrestyNginx

2022-06-30 22:53:18

數(shù)據(jù)結(jié)構(gòu)算法

2021-10-26 10:40:26

代理模式虛擬

2021-12-04 22:05:02

Linux

2022-05-17 08:02:55

GoTryLock模式

2023-01-03 08:31:54

Spring讀取器配置

2021-05-11 08:54:59

建造者模式設(shè)計(jì)

2021-07-05 22:11:38

MySQL體系架構(gòu)

2021-07-06 08:59:18

抽象工廠模式

2022-08-26 09:29:01

Kubernetes策略Master

2023-11-28 08:29:31

Rust內(nèi)存布局

2021-07-02 09:45:29

MySQL InnoDB數(shù)據(jù)

2022-08-23 08:00:59

磁盤(pán)性能網(wǎng)絡(luò)

2021-07-02 08:51:29

源碼參數(shù)Thread

2021-07-16 22:43:10

Go并發(fā)Golang

2021-09-28 08:59:30

復(fù)原IP地址

2022-04-12 08:30:52

回調(diào)函數(shù)代碼調(diào)試

2021-10-27 09:59:35

存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)