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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
Google 静态地图API实现代码
Nov 19 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
JS函数重载的解决方案
May 13 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
Oct 17 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
Dec 18 Javascript
JavaScript代码实现左右上下自动晃动自动移动
Apr 08 Javascript
Angular+Node生成随机数的方法
Jun 16 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
Dec 06 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 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图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
JS实现self的resend
2010/07/22 Javascript
JS.elementGetStyle(element, style)应用示例
2013/09/24 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
Html中 IFrame的用法及注意点
2016/12/22 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
基于Python实现一个简单的银行转账操作
2016/03/06 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
Python中pillow知识点学习
2018/04/30 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
父亲追悼会答谢词
2014/01/17 职场文书
大专生找工作自荐书
2014/06/10 职场文书
美术学专业求职信
2014/07/23 职场文书
学习型党组织心得体会
2014/09/12 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
工作保证书
2015/01/17 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
Mysql中常用的join连接方式
2022/05/11 MySQL