Vue之vue router进阶

在vue路由中,路由也分几个种类

  • 普通路由
  • 默认路由
  • 嵌套路由

在之前的vue路由入门中所讲的便是普通路由 ,接下来我将继续探讨其他路由

一、默认路由

在Vue中,路由组件需要通过router-link进行加载,如果在不手动点击router-link的前提下访问路由组件,那么需要设置被访问的路由组件为默认路由

代码实例HTML

<div id="app">

    <router-link to="/register">注册</router-link>
    <router-link to="/login">登录</router-link>

    <router-view></router-view>
</div>

<template id="registerId">
    <h1>这是注册页面</h1>
</template>

<template id="loginId">
    <h1>这是登录页面</h1>
</template>

JavaScript

<script>

    let RegisterComponent = {
        template:"#registerId"
    }

    let LoginComponent = {
        template: "#loginId"
    }

    let router = new VueRouter({
        routes:[
            {
                name:"register",
                path:"/register",
                component:RegisterComponent
            },
            {
                name:"login",
                path:"/login",
                component: LoginComponent
            },
            {
                //配置默认路由
                path:"/",  //路由地址
                redirect:"/login" //重定向
            }
        ]
    });

    new Vue({
        el:"#app",
        router
    });

</script>

在设置默认路由的时候,假如现在只有登录和注册页面,我们想默认到登录页面

首先我们还是需要登录和注册页面的路由

其次设置默认路由,在默认路由中path为/(因为路由的默认地址为/),redirect为路由的重定向(意思是,可以重新设置路由地址,设置成你想要的路径)


二、嵌套路由

嵌套路由本质就是路由之间相互嵌套

 代码案例

HTML

<div id="app">
<router-link to="/login">登录</router-link>
<router-link to="/res">注册</router-link>
    <router-view></router-view>
</div>
<template id="login">
    <div>
        <h1>登录</h1>
    </div>
</template>
<template id="res">
    <div>
        <h1>注册</h1>
        <router-link to="/phone">手机号</router-link>
        <router-link to="/email">邮箱</router-link>
        <router-view></router-view>

    </div>
</template>
<template id="phone">
    <div>
        <h1>手机号注册</h1>
    </div>
</template>
<template id="email">
    <div>
        <h1>邮箱注册</h1>
    </div>
</template>

JavaScript

<script>
    let Login = {
        template:'#login'
    }
    let Res = {
        template:'#res'
    }
    let Phone = {
        template:'#phone'
    }
    let Email = {
        template:'#email'
    }
    let router = new VueRouter({
        routes:[{
            path:'/login',
            component:Login
        },{
            path:'/res',
            component:Res,
            //嵌套路由
            //其实就是在主路由里面添加一个children对象数组
            //把子路由写进去
            children:[{
                path:'/phone',
                component:Phone
            },{
                path:'/email',
                component:Email
            },]
        },]
    })
    new Vue({
        el:'#app',
        router
    })
</script>

注意:嵌套路由多用在,左侧导航栏,点击左侧导航栏,在右边出现相对应的页面,然后再右面页面点击商品,出现相对应商品的信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值