【vue】路由Router基础详解,带你快速入门~
什么是路由
- 后端路由: 对于普通的网站,所有的超链接都是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基础详解,带你快速入门~相关推荐
- Vue路由传参详解(params 与 query)
Vue路由传参详解(params 与 query) 前言: 路由传参分为 params 传参与 query 传参 params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显 ...
- 万字长文--详解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 模 ...
- Vue路由的使用详解
路由 1.锚点实现前台路由 1.1----效果 2.Vue实现前台路由 2.1----准备 2.2----使用 效果 3.嵌套路由 3.1----使用 3.2----效果图 4.动态路由 4.1--- ...
- 【效率】超详细!手把手带你快速入门 GitHub!
作者:Peter 编辑:JackTian 来源:公众号「杰哥的IT之旅」 快速入门GitHub GitHub在程序开发领域家喻户晓,现在几乎整个互联网的开发者都将版本管理工具GitHub作为版 ...
- element ui路由配置文件_element-ui使用导航栏跳转路由的用法详解
最近初学vue,试着做一个小项目熟悉语法与思想,其中使用elemen-ui的导航栏做路由跳转切换页面.下面记录一下学习过程 element-ui引入vue项目的用法参考 首先复制官网的例子,在这基础上 ...
- 【云原生之k8s】k8s基础详解
[云原生之k8s]k8s基础详解 前言 一.kubernetes介绍 (1)kubernetes简介 (2)应用部署方式的演变 二.kubernetes组件 (1)kubernetes架构 (2)ma ...
- angular4和php,Angular4的router使用详解
这次给大家带来Angular4的router使用详解,Angular4的router使用注意事项有哪些,下面就是实战案例,一起来看一下. router,也就是路由,是前端中一个比较重要的概念.通过ro ...
- php为什么需要配置路由器,laravel 配置路由 api和web定义的路由的区别详解
1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...
- ElasticSearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解...
墨墨导读:之前我们分享了ElasticSearch最全详细使用教程:入门.索引管理.映射详解,本文详细介绍ElasticSearch的索引别名.分词器.文档管理.路由.搜索详解. 一.索引别名 1. ...
最新文章
- php怎么将表格导出到excel表格,php怎么将excel表格数据-php 怎么把数据导出到excel表格...
- 前端面试题--重要基础知识回顾(一)
- sand.A java_java中volatile关键字的含义(转)
- mysql alert on delete cascade_如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?)...
- excel筛选排序从小到大_excel表格怎么按字数的多少来排列!
- Matlab中图例注释函数legend详解
- 面试—每日一题(6)
- WPF中DataGrid的使用实例
- 新生代民工 书籍推荐
- android 图标居中,文字和图标在部分安卓(小米、魅族)居中对其问题?
- 7-Zip下载|7-Zip下载
- XJOI 7623 maoge数
- C语言二维数组定义、赋值、按要求遍历操作、输出以及函数调用
- 遥感图像空间分辨率获取
- Vue.js删除子组件数据显示异常,重新销毁创建子组件
- 快速构建一款 AR App 入门指南
- 一个非常好的资源网站
- 公考复盘(一)——第三季第四季
- 对Vuejs框架“渐进式”的理解
- python launcher卸载后蓝屏_大毒瘤!卸载WeGame解决XPS 15蓝屏问题