Vue-Router 路由传参
by logan70
HTML
<script src="https://cdn.bootcss.com/vue/2.5.17/vue.min.js"></script>
<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
<div id="app">
<h1>Vue-Router 路由传参</h1>
<p>在传参页内无法再次传参,因为匹配路由没变,路由并不会更新,需要返回主页重新传参</p>
参数1<input type="text" v-model="param1">
参数2<input type="text" v-model="param2">
<br>
<button @click="$router.push({name: 'home'})">返回主页</button>
<button @click="$router.push({name: 'param', params: {param1: param1, param2: param2}})">自定义传参</button>
<br>
<router-link :to="{name: 'home'}">主页</router-link>
<router-link :to="{name: 'param',params:{param1: '参数1', param2: '参数2'}}">默认传参</router-link>
<p>
<!-- 路由导航,to属性决定导航地址 -->
<!-- router-link编译后默认渲染为a标签 -->
</p>
<!-- 路由渲染出口 -->
<router-view></router-view>
</div>
JavaScript
const Home = {template: `
<div>
<p>主页(Home组件)</p>
</div>
`}
const Param = {template: `
<div>
<p>传参页(Param组件)</p>
<p>接收的参数1为:<b>{{$route.params.param1}}</b></p>
<p>接收的参数2为:<b>{{$route.params.param2}}</b></p>
</div>
`}
const router = new VueRouter({
routes : [
{path: '/home',component: Home, name: 'home'},
{path: '/param',component: Param, name: 'param'},
{path: '/',redirect: {name: 'home'}}
]
})
window.vueApp = new Vue({
router,
data() {
return {
param1: '参数1',
param2: '参数2'
}
}
}).$mount('#app')