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 去前后空格大全(IE9亲测)
Jul 15 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
node.js中的fs.lchmodSync方法使用说明
Dec 16 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
Jul 01 Javascript
Vue.js每天必学之方法与事件处理器
Sep 06 Javascript
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
编写React组件项目实践分析
Mar 04 Javascript
vue中的自定义分页插件组件的示例
Aug 18 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
vue 给数组添加新对象并赋值
Apr 20 Vue.js
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作的文本留言本的例子(一)
2006/10/09 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
js下将字符串当函数执行的方法
2011/07/13 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
详解关于JSON.parse()和JSON.stringify()的性能小测试
2019/03/14 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
原生JS实现留言板
2020/03/26 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
Python程序员开发中常犯的10个错误
2014/07/07 Python
python:socket传输大文件示例
2017/01/18 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
详解Python发送email的三种方式
2018/10/18 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
Java面试题汇总
2015/12/06 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
诚信承诺书范文
2014/03/27 职场文书
3的组成教学反思
2014/04/30 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书