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 相关文章推荐
node.js中的path.dirname方法使用说明
Dec 09 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
Apr 07 Javascript
jQuery异步提交表单实例
May 30 jQuery
highcharts 在angular中的使用示例代码
Sep 20 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
从组件封装看Vue的作用域插槽的实现
Feb 12 Javascript
小程序实现列表多个批量倒计时
Jan 29 Javascript
Element Popover 弹出框的使用示例
Jul 26 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 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自动识别字符集并完成转码详解
2013/08/02 PHP
PHP中的Memcache详解
2014/04/05 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
php中smarty区域循环的方法
2015/06/11 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
浅谈javascript中的闭包
2015/05/13 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
2018/09/01 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
python中的多线程实例教程
2014/08/27 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
应用服务器有那些
2012/01/19 面试题
C面试题
2015/10/08 面试题
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
药品采购员岗位职责
2014/02/08 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
基于Python实现nc批量转tif格式
2022/08/14 Python