vue3.0 CLI - 3.2 路由的初级使用教程


Posted in Javascript onSeptember 20, 2018

我的 github 地址 -vue3.0Study - 阶段学习成果都会建立分支。

==========================

动态路由

在路由某部分里加入[ : ],就成为动态路由如:/user/:id/,那么路由导航,并不是  /user/id/ 而是 /user/666/。

显然这个 id 能被获取,在组件中使用。通过 this.$route.params 获取。 this 是当前组件,$route 是路由对象,params 是一个对象字面量 { id:666 }。

$route 通过 Vue.use(Router) new Vue({ router, store, render: h => h(App) }).$mount('#app') 全局依赖注入,在所有组件中都可以使用它。

1、router.js 中 path: '/about' 路由 改为 path: '/about/:id'。

2、About.vue 中 <top-nav title="军事" :class="{ active: isActive }"/> 添加红色部分。

3、About.vue 中 data 或者 computed 属性中添加 isActive: function () { return this.$route.params.id === "666"; }

4、App.vue 中 <router-link to="/about/666">VUE</router-link>

5、About.vue 中 <style lang="less"> .active { background: red; } </style>

保存点击【VUE】导航按钮,即可见到效果:

vue3.0 CLI - 3.2 路由的初级使用教程

如何取得 $route 中参数的值,便是很大的进步。这个参数可以用在任何地方,可以用来做任何事情。

比如传递数据,根据路由参数动态从服务器获取组件内容等

在进行下一个内容学习之前,commit 一下。

嵌套路由(子路由)

在页面,通常存在多级导航。vue 官方网站便是多级导航的例子:顶部为一级导航栏,左侧为二级导航栏。

导航通常对应 <router-link> 而 <router-link> 与 <router-view/> 对应。

并非只有 App.vue 中才能存在 <router-view/>, 任何组件都可以。

下面把 HelloWorld.vue 变为 About.vue 的子路由:

1、<HelloWorld msg="vue 官方相关资料的链接"/> 替换为  <router-view/>

2、router.js 中关于 About.vue 组件的路由 替换为

{
  path: '/about/:id',
  name: 'about',
  // route level code-splitting
  // this generates a separate chunk (about.[hash].js) for this route
  // which is lazy-loaded when the route is visited.
  component: () => import(/* webpackChunkName: "about" */ './views/About.vue'),
  children: [
  {
   path: '1',
   component: HelloWorld,
   props: (router) => ({
   msg: router.query.msg
   })
  }
  ]
 }

在浏览器地址栏输入 http://localhost:8081/#/about/666/1?msg='welcome to nDos blog' 查看效果。

编程式导航与路由命名

在 vue 初始化的工程中,路由配置时,组件都已做好命名。这便是路由命名。

编程式导航,尽量使用命名的路由,如下:

router.push({ name: 'about', params: { userId: 123 }})

因为使用 path 属性进行编程式导航,params 无效。

这样使用路由跳转,使得单页面编程的路由跳转更加灵活。比如某个跳转按钮,可以绑定函数,进行条件跳转。

关于这两个的内容并不多,参照官网教程学习。

命名视图

在一个组件中,如果有多个组件出口,比如:在某个页面,需要同时展示很多个组件时。

只有一个 <router-view/> 显然不能满足需求。

多个 <router-view/> 同时存在的时候,就必须要加以区分,用的是 name 属性:<router-view name="a"/>

在 router.js 中的 components 属性中,添加多个组件即可 ( 到这里才明白为什么 components 为什么是复数形式的写法  )。

总结

以上所述是小编给大家介绍的vue3.0 CLI - 3.2 路由的初级使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
比较全的JS checkbox全选、取消全选、删除功能代码
Dec 19 Javascript
传智播客学习之java 反射
Nov 22 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
Javascript实现滚动图片新闻的实例代码
Nov 27 Javascript
javascript从image转换为base64位编码的String
Jul 29 Javascript
JS 动态判断PC和手机浏览器实现代码
Sep 21 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
vue axios post发送复杂对象问题
Jun 04 Javascript
js图片无缝滚动插件使用详解
May 26 Javascript
js实现div色块拖动录制
Jan 16 Javascript
微信小程序使用gitee进行版本管理
Sep 20 #Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 #jQuery
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
Sep 20 #Javascript
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 #jQuery
Vuex 快速入门(简单易懂)
Sep 20 #Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 #Javascript
js计算两个日期间的天数月的实例代码
Sep 20 #Javascript
You might like
如何获得PHP相关资料
2006/10/09 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
连接Python程序与MySQL的教程
2015/04/29 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
用python制作游戏外挂
2018/01/04 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
中秋节超市促销方案
2014/01/30 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
自荐信范文
2019/05/20 职场文书