vue升级之路之vue-router的使用教程


Posted in Javascript onAugust 14, 2018

使用 Vue 构建的项目,一个页面是由多个组件构成的,而且经常是做成单页面应用,所以在跳转页面的时候,传统的 href 已经跟不上时代的步伐了,于是 vue-router 应运而生

在使用 vue-router 的时候,需要看看自己是否装了这个依赖,没有的话可以使用 npm install vue-router -S ,不过现在构建vue项目时有可以选择是否安装 vue-router,大家注意一下就行了

一、路由的配置

自动安装的vue-router,会在src 文件夹下有个一个 router -> index.js 文件 在 index.js 中创建 routers 对象,引入所需的组件并配置路径

vue升级之路之vue-router的使用教程 

在创建的 routers 对象中, path 配置了路由的路径,component 配置了映射的组件

然后在main.js里面引入router文件

vue升级之路之vue-router的使用教程 

在创建的 router 对象中,如果不配置 mode,就会使用默认的 hash 模式,该模式下会将路径格式化为 #! 开头。

添加 mode: 'history' 之后将使用 HTML5 history 模式,该模式下没有 # 前缀,而且可以使用 pushState 和 replaceState 来管理记录。

关于 HTML5 history 模式的更多内容,可以自行度娘

二、嵌套路由

在构建的vue实例中,为了加深项目层级,App.vue 只是作为一个存放组件的容器

vue升级之路之vue-router的使用教程 

其中 是用来渲染通过路由映射过来的组件,当路径更改时, 中的内容也会发生更改

上面已经配置了两个路由,当打开 http://localhost:8080 或者 http://localhost:8080/index的时候,就会在 中渲染 index.vue 组件 index.vue 是真正的父组件,其它的子组件都会渲染到 index.vue 中的

vue升级之路之vue-router的使用教程 

想要在一级路由中实现嵌套二级路由,就要修改 router -> index.js

vue升级之路之vue-router的使用教程 

在配置的路由后面,添加 children,并在 children 中添加二级路由,就能实现路由嵌套。 配置 path 的时候,以 " / " 开头的嵌套路径会被当作根路径,所以子路由的 path 需不需要添加 " / " 就要看个人需求了

三、使用 映射路由

如果只需要跳转页面,不需要添加验证方法的情况,可以使用 来实现导航的功能:

<router-link class="item" to="/index/login" >{{ text }}</router-link>
 <router-link class="item" :to="{path:url, query:data}" >{{ text }}</router-link>

在编译之后, 会被渲染为 标签, to 会被渲染为 href,当 被点击的时候,url 会发生相应的改变

如果使用 v-bind 指令,还可以在 to 后面接变量,配合 v-for 指令可以渲染路由菜单

如果需要传入不同参数 ,可以在路由中添加动态参数,给 to 传入一个对象

{
 path: item.url,
 query: { id: '007' }
}

然后还可以使用 $ route.query.id 来获取到对应的参数

四、编程式导航

然而在实际项目下,有很多链接在执行跳转之前,还会执行方法对数据进行处理,这时可以使用 this.$router.push(location) 来修改 url 完成跳转

// 绑定goLogin
<button class="login" @click="goLogin"></button>
// 定义goLogin
methods: {
    goLogin() {
      this.routes.push('/login')
    }
  },

push 后面可以是对象,也可以是字符串:

// 字符串
this.$router.push('/index')
// 对象
this.$router.push({ path: '/index' })
// 命名的路由
this.$router.push({ name: 'login', params: { userId: '123' }})
Javascript 相关文章推荐
JavaScript 新手24条实用建议[TUTS+]
Jun 21 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
HTML上传控件取消选择
Mar 06 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
使用JQuery中的trim()方法去掉前后空格
Sep 16 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 Javascript
layui table 参数设置方法
Aug 14 #Javascript
layui 表格的属性的显示转换方法
Aug 14 #Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 #Javascript
layui实现table加载的示例代码
Aug 14 #Javascript
layui点击导航栏刷新tab页的示例代码
Aug 14 #Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 #Javascript
layer插件select选中默认值的方法
Aug 14 #Javascript
You might like
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
destoon二次开发入门示例
2014/06/20 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
Python与Redis的连接教程
2015/04/22 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Python3读写ini配置文件的示例
2020/11/06 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
学生处主任岗位职责
2013/12/01 职场文书
奥利奥广告词
2014/03/20 职场文书
经济贸易系求职信
2014/08/04 职场文书
2014年德育工作总结
2014/11/20 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
求职导师推荐信范文
2015/03/27 职场文书
企业承诺书格式范文
2015/04/28 职场文书
MySQL获取所有分类的前N条记录
2021/05/07 MySQL