router中添加參數
import Vue from 'vue' import Router from 'vue-router' import About from '@/components/About' import Home from '@/components/Home' import User from '@/components/User' import VueRouter from 'vue-router' // 導入路由對象 Vue.use(Router) // 創建VueRouter對象 const routes = [ { // 默認值 path:'', redirect:'/home' }, { path:'/home', component:Home }, { path:'/about', component:About }, { path:'/user/:userId', component:User } ] // 創建路由和組件之間的映射關系 const router = new VueRouter({ routes, mode:'history', // 默認是hash模式 linkActiveClass:'active' // 激活樣式 }); export default router
App.Vue中傳遞參數
<template> <div id="app"> <h1>我是app首頁</h1> <router-link to="/home">首頁</router-link> <router-link to="/about">關於</router-link> <router-link :to="'/user/'+userId">用戶</router-link> <router-view></router-view> </div> </template> <script> export default { name: "App", data() { return { userId: "笨蛋" }; } }; </script> <style> </style>
頁面中接受參數
<template> <div> <h2>用戶界面</h2> <p> {{$route.params.userId}}</p> </div> </template> <script> export default { name:'User' } </script> <style> </style>
通過query傳遞參數
App.vue
<template> <div id="app"> <h1>我是app首頁</h1> <router-link to="/home">首頁</router-link> <router-link to="/about">關於</router-link> <router-link :to="{path:'/user/'+userId, query:{name:'zhansan',age:18,hobby:'足球'}}">用戶</router-link> <router-view></router-view> </div> </template> <script> export default { name: "App", data() { return { userId: "笨蛋" }; } }; </script> <style> </style>
User.vue
<template> <div> <h2>用戶界面</h2> <p>{{$route.params.userId}}</p> <p>{{$route.query.name}}</p> <p>{{$route.query.age}}</p> <p>{{$route.query.hobby}}</p> </div> </template> <script> export default { name: "User" }; </script> <style> </style>