路由传参问题

来源:5-6 vue-router(路由嵌套)

英姿飒爽豆腐块

2017-11-03

<router-link to="{path:'Apple',param:{color:'red'}}">go to apple</router-link>


然后我在js里是这样写的
const Apple = { template: '<div>i am a apple{{$route.params.color}}</div>'}
let router = new VRouter({
	mode: 'history',
	routes : [
		{
			path: '/apple/:color',
			component: Apple
		},
		{
			path: '/banana',
			component: Banana
		}
	]
})

可是打开网页点击apple的时候apple无法跳转,URL变成了http://localhost:9000/%7Bpath:'Apple',param:%7Bcolor:'red'%7D%7D

是哪里写错了还是漏写吗?

写回答

1回答

fishenal

2017-11-03

你这里有几个错误,

  1. to应该写成:to, 后面的参数才会解析成对象,你现在这样后面的内容被当做字符串解析直接放在url后面了

  2. path区分大小写严格对应apple 不能写成Apple

  3. param只在具名路由下生效, 所以routes要设置name,跳转的时候要通过name跳转,不能通过path

  4. 如果不用具名路由,你可以使用query传参


0
1
英姿飒爽豆腐块
非常感谢!
2017-11-06
共1条回复

最容易上手的Vue2.0入门实战教程

快速入门Vue2.0,组件化开发一个数字产品电商平台

3966 学习 · 999 问题

查看课程