vue.js 2.0系列之 路由的使用

1,首先下载vue-router

npm install vue-router --save

2,引入并use

import Vue from "vue"
import Router from "vue-router"
Vue.use(Router)

这里写图片描述

在template中的使用:
keep-alive可以缓存组件,提高渲染效率。保持用户对页面的修改

 <keep-alive>
        <router-view></router-view>
</keep-alive>

router-link可以使改变路由,
:to=”{ path: item.path }” 表示要跳转的路径
tag=”li” 表示最中渲染成li

 <ul>
   <router-link v-for="(item,index) in products" 
       :key="index"  
       :to="{ path: item.path }"
       tag="li" 
       active-class="active">
            {{ item.name }}
  </router-link>
</ul>

3,获取路由参数

路由配置

routes: [
    {
        path: '/home/:cur',
        component: index
    },

在js里姐可以使用$route获取参数

this.$route.path   //cur

4,导航守卫

路由跳转前做一些验证,比如登录验证(未登录去登录页),是网站中的普遍需求

const vueRouter = new Router({  
    routes: [  
        //......  
        {  
          path: '/account',  
          name: 'account',  
          component: Account,  
          children: [  
            {name: 'course', path: 'course', component: CourseList},  
            {name: 'order', path: 'order', component: OrderList}  
          ]  
        }  
    ]  
});  
vueRouter.beforeEach(function (to, from, next) {  
    const nextRoute = [ 'account', 'order', 'course'];  
    const auth = store.state.auth;  
    //跳转至上述3个页面  
    if (nextRoute.indexOf(to.name) >= 0) {  
        //未登录  
        if (!store.state.auth.IsLogin) {  
            vueRouter.push({name: 'login'})  
        }  
    }  
    //已登录的情况再去登录页,跳转至首页  
    if (to.name === 'login') {  
        if (auth.IsLogin) {  
            vueRouter.push({name: 'home'});  
        }  
    }  
    next();  
});  

5,js里改变路由

this.$router.push({path: '/coach/' + this.$route.params.id, query: queryData});

6,视图中制定不同的组件

在路由配置中:
这里写图片描述

template中:这里写图片描述

7,路由重定向

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值