您好,登錄后才能下訂單哦!
這篇文章主要介紹vue嵌套路由中params傳遞參數(shù)的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
在嵌套路由中,父路由向子路由傳值除了query外,還有params,params傳值有兩種情況,一種是值在url中顯示,另外一種是值不顯示在url中。
1、顯示在url中
index.html
<div id="app"> <!-- router-view 路由出口, 路由匹配到的組件將渲染在這里 --> <router-view></router-view> </div>
main.js params傳值是通過(guò) :[參數(shù)值] 如path: "/home/game/:num"
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) //引入兩個(gè)組件 import home from "./home.vue" import game from "./game.vue" //定義路由 const routes = [ { path: "/", redirect: "/home" },//重定向 { path: "/home", component: home, children: [ { path: "/home/game/:num", component: game } ] } ] //創(chuàng)建路由實(shí)例 const router = new VueRouter({routes}) new Vue({ el: '#app', data: { id:123, }, methods: { }, router })
home.vue 在home中具體的值就跟在路徑后面,如 “/home/game/123”,也就是說(shuō)傳遞給子路由的值就是 123
<template> <div> <h4>首頁(yè)</h4> <router-link to="/home/game/123"> <button>顯示</button> </router-link> <router-view></router-view> </div> </template>
game.vue 在子路由中,通過(guò) this.$route.params.參數(shù)名來(lái)接受傳遞過(guò)來(lái)的值
<template> <h4>王者榮耀{{ this.$route.params.num }}</h4> </template>
2、不顯示在url中,如果在PC端將傳遞的值顯示在url中,這樣無(wú)形中就存在安全隱患,如果客戶不小心修改了url那樣就會(huì)出錯(cuò),移動(dòng)端就無(wú)所謂了,如何才能不顯示在url中,同樣很簡(jiǎn)單,但是需要給映射的路徑起一個(gè)別名,通過(guò)name來(lái)取別名
同樣只需將上面的main.js中的定義路由改為如下樣子,在子路由中通過(guò)name來(lái)給路徑其一個(gè)game1的別名。
//定義路由 const routes = [ { path: "/", redirect: "/home" },//重定向 { path: "/home", component: home, children: [ { name: "game1", path: "/home/game/", component: game } ] } ]
home.vue 中router-link修改為:to="{ name:'game1', params: {num: 123} }" params中是要傳遞的參數(shù),這樣傳遞的參數(shù)就不會(huì)顯示在url中。
<template> <div> <h4>首頁(yè)</h4> <router-link :to="{ name:'game1', params: {num: 123} }"> <button>顯示</button> </router-link> <router-view></router-view> </div> </template>
運(yùn)行的結(jié)果如下圖
以上是“vue嵌套路由中params傳遞參數(shù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。