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 时间函数应用加、减、比较、格式转换的示例代码
Aug 23 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
JS实现当前页居中分页效果的方法
Jun 18 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
Nov 23 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 Javascript
深入理解基于vue-cli的vuex配置
Jul 24 Javascript
微信小程序实现吸顶特效
Jan 08 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
vant组件中 dialog的确认按钮的回调事件操作
Nov 04 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
Nov 11 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 字符串分割和比较
2009/10/06 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
机械设计制造专业个人求职信
2013/09/25 职场文书
幼儿教育感言
2014/02/05 职场文书
销售内勤岗位职责
2014/04/15 职场文书
讲解员培训方案
2014/05/04 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
小学假期安全广播稿
2014/09/28 职场文书
2014年保管员工作总结
2014/11/18 职场文书
2014年党委工作总结
2014/11/22 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
换届选举主持词
2015/07/03 职场文书