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常见表单应用技巧
Jan 09 Javascript
js对数字的格式化使用说明
Jan 12 Javascript
javascript去掉前后空格的实例
Nov 07 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
Jun 16 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
Node.js中调用mysql存储过程示例
Dec 20 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
Feb 03 Javascript
vue配置接口域名方法总结
May 12 Javascript
jquery.pager.js分页实现详解
Jul 29 jQuery
vue 翻页组件vue-flip-page效果
Feb 05 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 has encountered an Access Violation
2007/01/15 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
如何在python中实现随机选择
2019/11/02 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Python bytes string相互转换过程解析
2020/03/05 Python
如何在django中实现分页功能
2020/04/22 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
幼儿园托班开学寄语
2014/01/18 职场文书
天坛导游词
2015/02/02 职场文书
高考1977观后感
2015/06/04 职场文书
小学美术教学反思
2016/02/17 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android