vue的使用易错点总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue的使用易错点总结相关的知识,希望对你有一定的参考价值。
1.在使用vue-router时,路由的嵌套中,子路由不加/。因为以 /
开头的嵌套路径会被当作根路径。
如:
const router = new VueRouter({ routes: [ { path: ‘/user/:id‘, component: User, children: [ { // 当 /user/:id/profile 匹配成功, // UserProfile 会被渲染在 User 的 <router-view> 中 path: ‘profile‘, //这里的profile不要写成/profile,否则会被当做根路径 component: UserProfile }, { // 当 /user/:id/posts 匹配成功 // UserPosts 会被渲染在 User 的 <router-view> 中 path: ‘posts‘, component: UserPosts } ] } ] })
vue-router有两种使用方式:一种是<router-link to="home"></router-link>标签(官网上to前加了:to,但是我在实际项目中这样写报错,不加的时候正常),一种是编程式导航:
该方法的参数可以是一个字符串路径,或者一个描述地址的对象。例如:
// 字符串 router.push(‘home‘) //push方法里的路径前不用加/,标签式的也不用加/ // 对象 router.push({ path: ‘home‘ }) // 命名的路由 router.push({ name: ‘user‘, params: { userId: 123 }}) // 带查询参数,变成 /register?plan=private router.push({ path: ‘register‘, query: { plan: ‘private‘ }})
注意:如果提供了 path
,params
会被忽略,上述例子中的 query
并不属于这种情况。取而代之的是下面例子的做法,你需要提供路由的 name
或手写完整的带有参数的 path
:
const userId = 123 router.push({ name: ‘user‘, params: { userId }}) // -> /user/123 router.push({ path: `/user/${userId}` }) // -> /user/123 // 这里的 params 不生效 router.push({ path: ‘/user‘, params: { userId }}) // -> /user
同样的规则也适用于 router-link
组件的 to
属性。
以上是关于vue的使用易错点总结的主要内容,如果未能解决你的问题,请参考以下文章