Vue路由

一、动态路由

routes: [
{
  path: '/goods/:goodsId/user/:name',
  name: 'GoodsList',
  component: GoodsList
},
]

goodsId和name是动态的,访问的时候我们必须这样输入:

http://localhost:8084/#/goods/1234/user/lvruifang

页面中我可以这样访问路由参数:

{{$route.params.goodId}} {{$route.params.name}}

二、嵌套路由:

routes: [
{
  path:'/main',
  name:"Main",
  component:Main,
  children:[
    {
      path:'title',
      name:'Title',
      component:Title
    },
    {
      path:'head',
      name:'Head',
      component:Head
    }
  ]
},
]

嵌套路由通过children属性来命名子路由,其中子路由的path不可以写成‘/title’,只需要写‘title’,写了‘/’就不是上下级关系而是平级的关系了;

嵌套路由的<router-view></router-view>需要写在父级页面,也就是组件Main页面中;

router-link的写法如下:

<router-link to="/main/title">显示标题组件</router-link>一定在前面加上父级的path,也就是‘/main’

三、编程式路由

跳转路由除了<router-link to="/main/title"></router-link>的方法还可以通过js跳转路由

1.this.$router.push("/cart")

2.this.$router.push({path:'/cart'})

3.this.$router.push({path:'/cart?postId=123'})其中参数postId我们可以通过{{$route.query.postId}}来拿到这个参数

这里我们需要注意$route.params.goodId获取的是路由切换时路由的参数

而$route.query.postId是我们访问该组件时通过路由传递的参数两者不一样,该方式要通过路由的path来访问, 通过?发送参数 如上标红

4.this.$router.go(-2) 页面路由向后退两步

四、我们还可以通过命名路由访问组件:

<router-link :to="{name:'Cart',params:{postId:345}}">通过路由名称跳转到购物车页面</router-link>

其中name值为路由里对应的name值,params为动态路由需要传递的参数

五、router的mode有两种类型

1.hash 路径需要加#

2.history 路径不需要加#

 

posted @ 2018-03-30 17:27  吕瑞芳  阅读(137)  评论(0编辑  收藏  举报