vue 路由

博客介绍了路由的基本使用和嵌套相关内容,聚焦于信息技术领域中路由方面的关键知识。

路由的基本使用

<body>

<div id="app">

    <!--<a href="#/login">登录</a>-->
    <!--5.1 使用router-link导航
        to:相当于a标签的href路径
        router-link在页面中会被渲染成a标签
    -->
    <router-link to="/login" tag="span">登录</router-link>
    <router-link to="/register">注册</router-link>

    <!--5.2 使用 router-view 组件来显示匹配到的组件-->
    <router-view></router-view>
</div>


<script src="lib/vue-2.4.0.js"></script>
<!--1. 导入路由模块-->
<script src="lib/vue-router-3.0.1.js"></script>
<script>
    //2. 创建组件模板对象
    let login = {
        template: '<h1>登录组件</h1>'
    }
    let register = {
        template: '<h1>注册组件</h1>'
    }
    //3. 创建路由对象
    let router = new VueRouter({
        //路由匹配规则
        routes: [
            /*
            * 每一个规则都是一个对象,必须要有两个属性
            * 属性1: path 表示你要监听的路径
            * 属性2: component 表示要展示对应的组件----注意:写的是组件的模板对象名,而不是组件名!!!
            * */
            {path:'/',redirect:'/login'},//根路径下,又重定向/login路径所对应的组件
            {path: '/login', component: login},
            {path: '/register', component: register}
        ],
        //②全局配置点击高亮显示的类
        linkActiveClass: 'myActive'
    });

    let vm = new Vue({
        el: '#app',
        data: {},
        methods: {},
        //4. 将路由对象注册到vm实例中,这样就可以监听url地址的变化
        // router:router
        router
        //5. 使用router-link导航和router-view来渲染----在dom层操作
    });


</script>
</body>
</html>

路由的嵌套

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

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

    <router-view></router-view>

</div>

<template id="box">
    <div>
        <h1>登录组件</h1>

        <router-link to="/login/wangmin">王敏</router-link>
        <router-link to="/login/caicong">蔡聪</router-link>

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

</template>

<script src="lib/vue-2.4.0.js"></script>
<script src="lib/vue-router-3.0.1.js"></script>
<script>

    let login = {
        template: '#box'
    }
    let register = {
        template: '<h1>注册组件</h1>'
    }

    //子路由显示的组件
    let red = {
        template: '<h1>王敏喜欢红色</h1>'
    }
    let purple = {
        template: '<h1>蔡聪喜欢紫色</h1>'
    }

    let router = new VueRouter({
        routes: [
            //路由匹配规则 path, component
            // children
            {path: '/', redirect: '/login'},
            {
                path: '/login', component: login,
                children: [
                    //使用children属性配置子路由时,注意:子路由的path属性的值前面不要加"/"
                    {path: '/', redirect: 'wangmin'},
                    {path: 'wangmin', component: red},
                    {path: 'caicong', component: purple}
                ]
            },
            {path: '/register', component: register}
        ]
    });

    let vm = new Vue({
        el: '#app',
        data: {},
        methods: {},
        router
    })


</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值