当前位置:首页 > 技术分析 > 正文内容

Vue中路由router的基本使用

ruisui885个月前 (01-12)技术分析21

??本文开始我们来给大家介绍在Vue中非常重要的一个内容,就是路由Router

什么是路由

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

Vue路由基本使用

1. 基本使用

??我们先来看看 路由的 基本使用,基础页面如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">

    </div>

    <script>
        var vm = new Vue({
            el: "#app",
            data: {},
            methods: {}
        })
    </script>
</body>
</html>

1.1 引入vue-router

??我们需要引入vue-router.js文件,而且必须是在vue.js文件之后引入

在这里插入图片描述

1.2 创建组件模板

??创建两个组件模板对象,如下

在这里插入图片描述

1.3 VueRouter实例

??当 导入 vue-router 包之后,在 window 全局对象中,就有了一个 路由的构造函数叫做 VueRouter,在 new 路由对象的时候,可以为 构造函数,传递一个配置对象。在配置对象中我们可以来创建我们的路由规则

在这里插入图片描述

1.4 vm实例绑定

??创建的VueRouter对象我们还需要绑定到Vue实例中才有效果

在这里插入图片描述

1.5 router-view

??我们想要使用router路由,那么我们通过router-view标签来占位 我们要显示的内容的位置

在这里插入图片描述


??router-view标签是 vue-router 提供的元素,专门用来 当作占位符的,将来,路由规则,匹配到的组件,就会展示到这个 router-view 中去。所以: 我们可以把 router-view 认为是一个占位符1.6 访问

在这里插入图片描述

??通过上面的演示我们可以通过修改 #/后的内容来 触发路由中的规则,这时我们可以在页面中添加对应的操作按钮来便捷触发。

在这里插入图片描述


在这里插入图片描述

2. 重定向

??上面的案例我们实现了路由的基本使用,但是页面第一次打开的时候,是没有路由规则的,这时我们可以配置一个,如下

在这里插入图片描述

效果

在这里插入图片描述

有实现,但是地址显示的是“/”,我们希望地址和路由的结果是一致的,这时我们可以设置个重定向来处理。

在这里插入图片描述

3. router-link

??我们可以用router-link标签来替换掉 a标签,这样会更灵活些,如下

在这里插入图片描述

在这里插入图片描述


我们发现router-link渲染的最终的标签也是 a 标签,我们可以通过 router-link中的 tag属性来修改 渲染的标签类型

在这里插入图片描述


在这里插入图片描述

4. 高亮处理

??有时候我们需要给被选中的标签设置特殊的样式,这时怎么办呢?看下面的动图。

在这里插入图片描述

通过演示我们发现,当对应的标签被选中的时候会动态给标签添加 class属性:
router-link-active,那么我们就可以利用这 属性了

在这里插入图片描述


在这里插入图片描述

实现了我们需要的效果,注意在VueRouter实例中有个属性叫 linkActiveClass 可以设置我们 特定的 class 值。

在这里插入图片描述


在这里插入图片描述

效果

在这里插入图片描述

搞定

5. 动画效果

??最后我们可以将前面讲过的动画运用到组件切换上。如下

在这里插入图片描述

在这里插入图片描述

最终效果如下

在这里插入图片描述

完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
    <script src="./lib/vue-router-3.0.1.js"></script>
    <style>

        .router-link-active,
        .myclass{
            background-color: burlywood;
            font-size: 30px;
        }
        .v-enter,
        .v-leave-to {
        opacity: 0;
        transform: translateX(140px);
        }

        .v-enter-active,
        .v-leave-active {
        transition: all 0.5s ease;
        }

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

        <!-- router-link 默认渲染为一个a 标签 -->
        <router-link to="/login" tag="span">登录</router-link>
        <router-link to="/register">注册</router-link>

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

    <script>
        // 创建两个子组件 模板对象
        var login = {
            template: "<h3>登录模块</h3>"
        }

        var register = {
            template: "<h3>注册模块</h3>"
        }

        // 创建一个路由对象, 当 导入 vue-router 包之后,在 window 全局对象中,
        // 就有了一个 路由的构造函数叫做 VueRouter
        var routerObj = new VueRouter({
            // 配置路由规则
            routes:[
                {path:"/",redirect:"/login"},
                {path: "/login" , component: login},
                {path: "/register" , component: register}
            ],
            linkActiveClass:'myclass'
        })
        var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,
            // 然后展示对应的组件
            router:routerObj
        })
    </script>
</body>
</html>

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/211.html

标签: vue路由传值
分享给朋友:

“Vue中路由router的基本使用” 的相关文章

vue组件间的九种通信方式

前言Vue组件实例间的作用域是相互独立的,而通常一个页面是由很多个组件构成,这些组件可能又嵌套了组件,形成了一个关系网图,它们的关系可能是像下图中一样,大致分为两种使用场景,父子组件间通信和非父子组件间通信,父子组件间通信又分为直接父子关系和间接父子关系。vue提供了多种通信方法,针对不同的通信需求...

GitLab-创建分支

描述分支是独立的生产线,是开发过程的一部分。分支的创建涉及以下步骤。创建一个分支步骤1-登录您的GitLab帐户,然后转到“ 项目”部分下的项目。步骤2-要创建分支,请单击“ 存储库”部分下的“ 分支”选项,然后单击“ 新建分支”按钮。步骤3-在“ 新建分支”屏幕中,输入分支的名称,然后单击“ 创建...

jvm疯狂吃内存,到底是谁的锅?

jvm应该是每一个java程序员都需要掌握的内容,但是在没有遇到问题之前,很多都是基于理论的,唯有实战才能增加个人的知识储备。本文是从一个角度来分析是谁在狂吃内存,希望对你有所帮助。本文是易观技术人员注意到一台开发机上各个微服务进程占用内存很高,随即便展开了调查......ps:本文来源于:http...

22《Vue 入门教程》VueRouter 路由嵌套

1. 前言本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。2. 配置嵌套路由实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层...

Vue从入门到实践 丨Vue-router基本使用

1. 什么是 vue-routervue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装...

一篇文章搞懂同步与异步、阻塞与非阻塞

要想掌握好Java NIO需要涉及了解同步与异步、阻塞与非阻塞,本文通过相关例子让你深入理解其本质@mikechen阻塞阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。阻塞调用是指调用结果返回之前,当前线程会被挂起,调用线程只有在得到结果之后才会返回。举一个例子:当一...