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 相关文章推荐
仿新浪微博登陆邮箱提示效果的js代码
Aug 02 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
Nov 28 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
Mar 01 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
Aug 06 Javascript
angularjs学习笔记之完整的项目结构
Sep 26 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
Nov 03 Javascript
vue移动端UI框架实现QQ侧边菜单组件
Mar 09 Javascript
Layui数据表格之获取表格中所有的数据方法
Aug 20 Javascript
使用Vue生成动态表单
Nov 26 Javascript
Javascript异步执行不按顺序解决方案
Apr 30 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
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
详解PHP安装mysql.so扩展的方法
2016/12/31 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
angular directive的简单使用总结
2017/05/24 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
Python登录注册验证功能实现
2018/06/18 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
生物制药自我鉴定
2014/01/25 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
党支部季度考核意见
2015/06/02 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
Python 数据科学 Matplotlib图库详解
2021/07/07 Python