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 触发HTML元素绑定的函数
Sep 11 Javascript
基于javascript 闭包基础分享
Jul 10 Javascript
模拟多级复选框效果的jquery代码
Aug 13 Javascript
JavaScript保留两位小数的2个自定义函数
May 05 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
May 14 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
JavaScript编写一个简易购物车功能
Sep 17 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
May 18 Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 Javascript
JavaScript页面倒计时功能完整示例
May 15 Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 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代码
2010/08/08 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
python语言中with as的用法使用详解
2018/02/23 Python
Python 加密与解密小结
2018/12/06 Python
值得收藏的10道python 面试题
2019/04/15 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
python爬虫工具例举说明
2020/11/30 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
销售高级职员求职信
2013/10/29 职场文书
酒店led欢迎词
2014/01/09 职场文书
旅游项目开发策划书
2014/01/18 职场文书
会计专业自我评价
2014/02/12 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
餐饮投资计划书
2014/04/25 职场文书
应用外语系自荐信
2014/06/26 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers