开发中,参数的传递是个最基本的业务需求。通过URL地址来传递参数是一个形式,这节课我们就看看vue-router为我们提供了那些传递参数的功能。
一、用name传递参数
name传值是如何传递,共计两步就可以实现:
在路由文件src/router/index.js里配置name属性。注意,如果有子路由,必须配置到子路由的name属性。
routes: [ { path: '/', name: 'Hello', component: Hello } ]
模板里(src/App.vue)用$router.name的形势接收,比如直接在模板中显示:
{
{ $route.name}}
使用name传递项目中多数传参是不用使用,多数会通过下面介绍的方式传递。
二、通过<router-link> 标签中的to传参
用<router-link>标签中的to属性进行传参,需要您注意的是这里的to要进行一个绑定,写成:to。先来看一下这种传参方法的基本语法:
valueString
这里的to前边是带冒号的,然后后边跟的是一个对象形势的字符串.
- name:就是我们在路由配置文件中起的name值。
- params:就是我们要传的参数,它也是对象形势,在对象里可以传递多个值。
了解基本的语法后,我们改造一下我们的src/App.vue里的<router-link>标签,我们把Hi1页面的<router-link>进行修改。
Hi页面1
最后在模板里(src/components/Hi1.vue)用$route.params.username进行接收.
{ { $route.params.username}}
以上就是如何通过<router-link>标签中的to属性进行传参。
附完整的文件代码
src/App.vue
Hello |Hi |Hi1 |Hi2 {
{ $route.name}}
src/components/Hi1.vue
{ {message}}
{ { $route.params.username}}
src/router/index.js
import Vue from 'vue'import Router from 'vue-router'import HelloWorld from '@/components/HelloWorld'// 引入Hiimport Hi from '@/components/Hi'// 引入Hi1import Hi1 from '@/components/Hi1'// 引入Hi2import Hi2 from '@/components/Hi2'Vue.use(Router)export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld }, // 配置Hi对象 { path: '/Hi', component: Hi, //引子路由 children:[ {path:'/',name: 'Hi',component:Hi}, {path:'Hi1',name: 'Hi1',component:Hi1}, {path:'Hi2',name: 'Hi2',component:Hi2}, ] } ]})