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 相关文章推荐
使用Firebug对js进行断点调试的图文方法
Apr 02 Javascript
editable.js 基于jquery的表格的编辑插件
Oct 24 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
Jul 02 Javascript
JavaScript列表框listbox全选和反选的实现方法
Mar 18 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
Jul 12 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
vue.js层叠轮播效果的实例代码
Nov 08 Javascript
jQuery Migrate 插件用法实例详解
May 22 jQuery
node.js使用yargs处理命令行参数操作示例
Feb 11 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
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 email邮箱正则
2008/10/08 PHP
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
web.py获取上传文件名的正确方法
2014/08/26 Python
python分析网页上所有超链接的方法
2015/05/08 Python
Python下载指定页面上图片的方法
2016/05/12 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
wxPython色环电阻计算器
2019/11/18 Python
简单了解Django项目应用创建过程
2020/07/06 Python
用 python 进行微信好友信息分析
2020/11/28 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
《和田的维吾尔》教学反思
2014/04/14 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
干部考察材料范文
2014/12/24 职场文书
让生命充满爱观后感
2015/06/08 职场文书
换届选举主持词
2015/07/03 职场文书
靠谱准确的求职信
2019/04/02 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA