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 相关文章推荐
判断用户的在线状态 onbeforeunload事件
Mar 05 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
Nov 01 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
Jan 24 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
Nov 30 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
Vue中的字符串模板的使用
May 17 Javascript
Koa日志中间件封装开发详解
Mar 09 Javascript
微信小程序登录时如何获取input框中的内容
Dec 04 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
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
2007/08/15 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
python绘制雪景图
2019/12/16 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
市级文明单位申报材料
2014/05/07 职场文书
小学教师培训方案
2014/06/09 职场文书
小学开学标语
2014/07/01 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
安全教育培训制度
2015/08/06 职场文书