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 相关文章推荐
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
利用js实现选项卡的特别效果的实例
Mar 03 Javascript
js实现上传图片之上传前预览图片
Mar 25 Javascript
使用闭包对setTimeout进行简单封装避免出错
Jul 10 Javascript
Javascript基础教程之for循环
Jan 18 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
原生JS中slice()方法和splice()区别
Mar 06 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
AngularJS实现进度条功能示例
Jul 05 Javascript
深入浅析ES6 Class 中的 super 关键字
Oct 20 Javascript
在 Node.js 中使用 async 函数的方法
Nov 17 Javascript
vue分页器组件编写方法详解
Jun 28 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
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
js实现抽奖效果
2017/03/27 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
python中的列表推导浅析
2014/04/26 Python
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
python中的计时器timeit的使用方法
2017/10/20 Python
Django中Model的使用方法教程
2018/03/07 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
手写一个python迭代器过程详解
2019/08/27 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
后勤采购员岗位职责
2013/12/19 职场文书
销售经理岗位职责
2015/01/31 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
保险内勤岗位职责
2015/04/13 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
Pytorch中Softmax与LogSigmoid的对比分析
2021/06/05 Python