路由router

路由:vue-router
1.作用

   将不同url对应不同的组件,比较适合单页面开发
    vue-router是vue的一个插件,需要安装使用
**2.安装**
   1.cdn
    2.npm
    3.vue-router.js
**3.基本使用**
    1.定义组件
        var students={
            template:``
        }
    2.定义路由
        var router=new VueRouter({
            routes:[{
                //多个路由对象
                path:'/student',
                component:student
            },{}]
        })
    3.挂载路由到vue实例
        new Vue({
            el:'#app,
            router        //相当于router:router
        })
    4.显示
        <router-view></router-view>

4.router-link标签中的to属性

<router-link to="/student">跳转到student</router-link>
<router-link :to="{path:'/student'}">跳转到student</router-link>
<router-link :to="student">跳转到student</router-link>      //student是data中的变量   student:{path:'/student'}

通过query传递参数,参数会拼接在地址栏
获取参数:在当前组件中使用$route.query
<router-link :to="{path:'/student',query:{id:1}}">跳转到student</router-link>

通过params传递参数,参数不会拼接在地址栏上
获取参数:在当前组件中使用$route.params      可在created阶段获取
<router-link :to="{path:'/student',params:{id:1}}">跳转到student</router-link>
如果使用params发送参数,需要使用路由名称进行跳转
<router-link :to="{name:'/student',params:{id:1}}">跳转到student</router-link>

5.命名路由+重定向

入口路由或页面默认加载哪个页面都要用到重定向
var router=new VueRouter({
   routes: [{
       path:'/',
       redirect:'/student'  //默认展示student页面
   },{
       path:'/student',
       name:'student-a',//给路由命名,方便路由跳转,并传参
       component:student,
   },{
       path:'/teacher',
       name:'teacher-a',
       alias:'/a',    //别名
       component:teacher,
   },{
       path:'/user',
       name:'user-a',
       redirect:'/teacher',  //重定向,跳转到teacher页面
       component:user,
   }]
})

6.动态路由

动态路由类似于新闻详情页
只需要开发一次,传递不同参数,加载不同内容
参数使用:连接
path:'/details:id'

默认情况下,由于vue的高效渲染机制,不会将同一个组件进行销毁并重新加载
导致生命周期钩子函数不会反复执行

监听$route

   watch:{
       '$route':function(newobj,oldobj){
           alert()
       }
   },

7.嵌套路由-多级路由

路由父子关系
1.创建自组件
2.嵌套router-link标签,并且嵌套router-view
3.在路由new VueRouter()给当前路由添加子路由属性
   children:[{
       path:'/a',
       component:a
   },{}]

相关例子请见下方链接:
router.html
动态路由.html
嵌套路由.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值