什么是路由

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

Vue路由基本使用

1、引入vue-router

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

<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.4.3/vue-router.min.js"></script>

2、创建组件模板

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

<div id='app'></div>
<script>//创建两个子组件 模板对象var login = {template:'<h3>登录模块<h3>'}var register = {template:'<h3>注册模块</h3>'}new Vue({el:'#app',data:{},methods: {},})
</script>

3、VueRouter实例

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

//创建路由对象
var routerObj = new VueRouter({//配置路由规则routes:[{path:'/login',component:login},{path:'/register',component:register}]
})

4、Vue实例绑定

创建的 VueRouter 对象需要绑定到Vue实例中,用来监听URL地址的变化,然后展示对应的组件。

5、router-view

router-view 标签是 vue-router 提供的元素,用来展示路由规则匹配到的组件,我们可以把它认为是一个占位符。我们想要使用router路由,就要通过 router-view 标签来占位我们要显示内容的位置。

<div id='app'><router-view></router-view>
</div>

6、访问


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

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

路由重定向

上面的案例中我们实现了路由的基本使用,但是页面第一次打开的时候,是没有路由规则的,我们可以给它配置一个登录模块,如下:


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

//创建路由对象
var routerObj = new VueRouter({//配置路由规则routes:[//重定向设置{path:'/',redirect:'/login'},{path:'/login',component:login},{path:'/register',component:register}]
})

router-link

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

<div id='app'><!-- <a href="#/login">登录</a><a href="#/register">注册</a> --><router-link to='/login'>登录</router-link><router-link to='/register'>注册</router-link><router-view></router-view>
</div>


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


高亮处理

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


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

<style>.router-link-active{background: chocolate;font-size: 30px;}
</style>


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


完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.4.3/vue-router.min.js"></script><style>.router-link-active, .myclass{background: chocolate;font-size: 30px;}</style>
</head>
<body><div id='app'><!-- <a href="#/login">登录</a><a href="#/register">注册</a> --><router-link to='/login' tag='span'>登录</router-link><router-link to='/register'>注册</router-link><router-view></router-view></div><script>//创建两个子组件 模板对象var login = {template:'<h3>登录模块<h3>'}var register = {template:'<h3>注册模块</h3>'}//创建路由对象var routerObj = new VueRouter({//配置路由规则routes:[//重定向设置{path:'/',redirect:'/login'},{path:'/login',component:login},{path:'/register',component:register}],linkActiveClass:'myclass'})new Vue({el:'#app',data:{},methods: {},router:routerObj})</script>
</body>
</html>

【vue】路由Router基础详解,带你快速入门~相关推荐

  1. Vue路由传参详解(params 与 query)

    Vue路由传参详解(params 与 query) 前言: 路由传参分为 params 传参与 query 传参 params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显 ...

  2. 万字长文--详解Node.js(快速入门)

    Node.js基础与扩展 Node.js 1.初识Node.js与内置模块 1.1 Node.js初识 1.2 fs文件系统模块 1.3 path路径模块 1.4 http模块 2.模块化 2.1 模 ...

  3. Vue路由的使用详解

    路由 1.锚点实现前台路由 1.1----效果 2.Vue实现前台路由 2.1----准备 2.2----使用 效果 3.嵌套路由 3.1----使用 3.2----效果图 4.动态路由 4.1--- ...

  4. 【效率】超详细!手把手带你快速入门 GitHub!

    作者:Peter     编辑:JackTian 来源:公众号「杰哥的IT之旅」 快速入门GitHub GitHub在程序开发领域家喻户晓,现在几乎整个互联网的开发者都将版本管理工具GitHub作为版 ...

  5. element ui路由配置文件_element-ui使用导航栏跳转路由的用法详解

    最近初学vue,试着做一个小项目熟悉语法与思想,其中使用elemen-ui的导航栏做路由跳转切换页面.下面记录一下学习过程 element-ui引入vue项目的用法参考 首先复制官网的例子,在这基础上 ...

  6. 【云原生之k8s】k8s基础详解

    [云原生之k8s]k8s基础详解 前言 一.kubernetes介绍 (1)kubernetes简介 (2)应用部署方式的演变 二.kubernetes组件 (1)kubernetes架构 (2)ma ...

  7. angular4和php,Angular4的router使用详解

    这次给大家带来Angular4的router使用详解,Angular4的router使用注意事项有哪些,下面就是实战案例,一起来看一下. router,也就是路由,是前端中一个比较重要的概念.通过ro ...

  8. php为什么需要配置路由器,laravel 配置路由 api和web定义的路由的区别详解

    1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...

  9. ElasticSearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解...

    墨墨导读:之前我们分享了ElasticSearch最全详细使用教程:入门.索引管理.映射详解,本文详细介绍ElasticSearch的索引别名.分词器.文档管理.路由.搜索详解. 一.索引别名 1. ...

最新文章

  1. php怎么将表格导出到excel表格,php怎么将excel表格数据-php 怎么把数据导出到excel表格...
  2. 前端面试题--重要基础知识回顾(一)
  3. sand.A java_java中volatile关键字的含义(转)
  4. mysql alert on delete cascade_如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?)...
  5. excel筛选排序从小到大_excel表格怎么按字数的多少来排列!
  6. Matlab中图例注释函数legend详解
  7. 面试—每日一题(6)
  8. WPF中DataGrid的使用实例
  9. 新生代民工 书籍推荐
  10. android 图标居中,文字和图标在部分安卓(小米、魅族)居中对其问题?
  11. 7-Zip下载|7-Zip下载
  12. XJOI 7623 maoge数
  13. C语言二维数组定义、赋值、按要求遍历操作、输出以及函数调用
  14. 遥感图像空间分辨率获取
  15. Vue.js删除子组件数据显示异常,重新销毁创建子组件
  16. 快速构建一款 AR App 入门指南
  17. 一个非常好的资源网站
  18. 公考复盘(一)——第三季第四季
  19. 对Vuejs框架“渐进式”的理解
  20. python launcher卸载后蓝屏_大毒瘤!卸载WeGame解决XPS 15蓝屏问题

热门文章

  1. 基于STM32F4的舵机控制
  2. vue复制html表格单列,vue表格含有一列多选框,如何获取被选中的行的数据?
  3. 系统集成项目管理工程师考试大纲第二版
  4. Oracle从零开始2——简单查询
  5. java applog_Java Web App: 选择与配置日志库
  6. JavaScript获取图片的原始尺寸
  7. 最常用Python开源框架有哪些?
  8. 再谈布局,栅栏式自适应布局的学习和实现(calc自适应布局)
  9. c# 之继承、封装、多态
  10. [ActionScript 3.0] 获取TextFiled字符边框