码迷,mamicode.com
首页 > 其他好文 > 详细

vue的使用易错点总结

时间:2017-11-22 13:14:14      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:param   嵌套   pat   忽略   reg   描述   one   对象   col   

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 }})

 

注意:如果提供了 pathparams 会被忽略,上述例子中的 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的使用易错点总结

标签:param   嵌套   pat   忽略   reg   描述   one   对象   col   

原文地址:http://www.cnblogs.com/BlingSun/p/7878435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!