Vue的学习笔记-Day4-02(路由的基本使用)

一、什么是路由

1、后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上的资源;
2、前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容,所以单页面程序中的页面跳转主要用hash实现;
3、在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由);

二、路由的基本使用

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="lib/vue-2.6.10.js"></script>
    <!--安装vue-router路由模块-->
    <script src="lib/vue-router.js"></script>
    <style>
        .pointer {
            cursor: pointer;
        }

        .router-link-active, .myActive { /*router-link-active是默认提供的激活类名,myActive是自己修改的激活类名*/
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 80px;
            text-decoration: underline;
            background-color: green;
        }

        .v-enter,
        .v-leave-to{
            opacity: 0;
            transform: translateX(140px);
        }

        .v-enter-active,
        .v-leave-active{
            transition: .5s;
        }
    </style>
</head>
<body>

<div id="app">
    <!--    <a href="#/login">登录</a>-->
    <!--    <a href="#/register">注册</a>-->

    <!--官方不推荐用a标签来切换路由,推荐使用router-line-->
    <!--router-link 默认是a标签-->
    <router-link class="pointer" to="/login" tag="span">登录</router-link>
    <router-link to="/register">注册</router-link>

    <!--这是vue-router提供的元素,专门用来当做占位符的,将来路由规则匹配到的组件就会展示到这个router-view中去-->

    <transition mode="out-in">
        <router-view></router-view>
    </transition>

</div>

<script>
    var login = { //组件模板对象
        template: '<h1>登录组件</h1>'
    };

    var register = { //组件模板对象
        template: '<h1>注册组件</h1>'
    };

    /*创建一个路由对象,当导入vue-router包之后,在window全局对象中,就有了一个路由的构造函数,叫做VueRouter*/
    //在new路由对象的时候,可以为构造函数传递一个配置对象
    var routerObj = new VueRouter({
        //routes这个配置对象中的route表示【路由匹配规则】的意思
        routes: [ //路由匹配规则
            //每个路由规则都是一个对象,每个规则对象必须包含两个必须的属性
            // 属性1 是path 表示监听哪个链接地址
            // 属性2 是component ,表示如果路由是前面匹配到的path,则展示component属性对应的那个组件
            // 注意:component的属性值,必须是一个组件模板对象,不能是组件的引用名称
            {path: '/', redirect: '/login'},//这里的redirect和Node中的redirect完全是两码事
            {path: '/login', component: login},
            {path: '/register', component: register}
        ],
        linkActiveClass: 'myActive',//可以将默认的router-link-active类名改为自定义的类名
    });

    var vm = new Vue({
        el: '#app',
        data: {},
        methods: {},
        router: routerObj //将路由规则对象注册到vm实例上,用来监听URL地址的变化,然后展示对应的组件
    });
</script>

</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容