<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文介紹Vue-Router中動態路由的用法。
Vue官網:帶引數的動態路由匹配 | Vue Router
說明
很多時候,我們需要將給定匹配模式的路由對映到同一個元件。例如,我們可能有一個 User 元件,它應該對所有使用者進行渲染,但使用者 ID 不同。在 Vue Router 中,我們可以在路徑中使用一個動態欄位來實現,我們稱之為 路徑引數 。
路徑引數 用冒號(:) 表示。當一個路由被匹配時,它的 params 的值將在每個元件中以 this.$route.params 的形式暴露出來。
範例
const User = { template: '<div>User</div>', } // 這些都會傳遞給 `createRouter` const routes = [ // 動態欄位以冒號開始 { path: '/users/:id', component: User }, ]
現在像 /users/johnny 和 /users/jolyne 這樣的 URL 都會對映到同一個路由。可以通過更新 User 的模板來呈現當前的使用者 ID:
const User = { template: '<div>User {{ $route.params.id }}</div>', }
可以在同一個路由中設定有多個 路徑引數,它們會對映到 $route.params 上的相應欄位。
例如:
匹配模式 | 匹配路徑 | $route.params |
/users/:username | /users/eduardo | { username: 'eduardo' } |
/users/:username/posts/:postId | /users/eduardo/posts/123 | { username: 'eduardo', postId: '123' } |
簡介
說明
vue-router底層是通過path-to-regexp來實現的路徑引數。
該工具庫用來處理 url 中地址與引數,能夠很方便得到我們想要的資料。
js 中有 RegExp 方法做正規表示式校驗,而 path-to-regexp 可以看成是 url 字串的正規表示式。
官網網址
github:GitHub - pillarjs/path-to-regexp at v1.7.0
github用法翻譯:path-to-regexp介紹
線上測試:Express Route Tester
npm install path-to-regexp const pathToRegexp = require('path-to-regexp');
作用:這裡這個方法可以類比於 js 中 new ExpReg('xxx')。
var pathToRegexp = require('path-to-regexp') var re = pathToRegexp('/foo/:bar') console.log(re); // /^/foo/((?:[^/]+?))(?:/(?=$))?$/i
作用:匹配 url 地址與規則是否相符。
url路徑與匹配規則不相符返回 null, 與匹配規則相符,返回一個陣列。
var pathToRegexp = require('path-to-regexp') var re = pathToRegexp('/foo/:bar'); // 匹配規則 var match1 = re.exec('/test/route'); // url 路徑 var match2 = re.exec('/foo/route'); // url 路徑 console.log(match1); //null console.log(match2); //[ '/foo/route', 'route', index: 0, input: '/foo/route' ]
作用:解析 url 字串中的引數部分(:id)
返回一個陣列,可得到 url 地址攜帶引數的屬性名稱(item.name)。
url 中攜帶引數出了 :id 這種形式,還有 /user?id=11 這種,使用 parse() 方法解析自行檢視結果
var pathToRegexp = require('path-to-regexp'); var url = '/user/:id'; console.log(pathToRegexp.parse(url)); //[ '/user',{ name: 'id', prefix: '/',delimiter: '/',optional: false, repeat: false, partial: false, pattern: '[^\/]+?' } ]
作用:快速填充 url 字串的引數值。
var pathToRegexp = require('path-to-regexp') var url = '/user/:id/:name' var data = {id: 10001, name: 'bob'} console.log(pathToRegexp.compile(url)(data)); // /user/10001/bob
到此這篇關於Vue--Router動態路由的用法的文章就介紹到這了,更多相關VueRouter動態路由內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45