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 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
省市选择的简单实现(基于zepto.js)
Jun 21 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
Jan 21 Javascript
Vue单文件组件的如何使用方式介绍
Jul 28 Javascript
JS简单实现滑动加载数据的方法示例
Oct 18 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 Javascript
微信小程序实现红包雨功能
Jul 11 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
Vue.js实现tab切换效果
Jul 24 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 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
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
php微信公众号开发模式详解
2016/11/28 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
webpack3之loader全解析
2017/10/26 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
Django保护敏感信息的方法示例
2019/05/09 Python
django settings.py 配置文件及介绍
2019/07/15 Python
Python模块future用法原理详解
2020/01/20 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
最美乡村医生事迹材料
2014/06/02 职场文书
二人合伙经营协议书
2014/09/13 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
代办出身证明书
2014/10/21 职场文书
个人廉洁自律总结
2015/03/06 职场文书
家长会开场白和结束语
2015/05/29 职场文书