深入理解Vue router的部分高级用法


Posted in Javascript onAugust 15, 2018

今天要介绍的是路由元信息,滚动行为以及路由懒加载这几个的使用方法。

1.路由元信息

什么是路由元信息,看看官网的解释,定义路由的时候可以配置 meta 字段可以匹配meta字段,那么我们该如何使用它,一个简单的例子,改变浏览器title的值。下面上代码。

//简单的我就不写了直接上解决方案
import Vue from 'vue'
import Router from 'vue-router'
import Login from '../login/Login'
import Home from '../pages/Home'
export default new Router({
  mode: 'history',
  routes: [
    {path: 'home', name: 'Home', component: Home,meta:{title:"主页"}}
    {path: 'login', name: 'Login', component: Login,meta:{title:"登录"}}
  ]
})
//可以在跳转之前判断跳转的组件的名字并用window.document.title赋值
Router.beforeEach((to,from,next) => {
  window.document.title=to.meta.title
})

上面的是不是看上去很简单呢,但是它并不简单,我只是举了一个比较小的例子罢了。还要看大家怎么活学活用这样才好,但是我强调几点需要注意的

第一点就是这个beforeEach页面跳转之前调用,好处是比如想要改变title的值不会显得太突兀,可以直接替换。

第二点afterEach这个不用我说了吧这个是在组件跳转之后调用比较适用于返回页面之前浏览过的区域或者是让页面返回顶部的操作。

2.滚动行为

想必各位同学应该知道我要讲些什么了没错就是页面的前进和后退时的滚动事件,怎么实现呢,有两种实现方式,先看代码。

//刚才我说过的方法直接使用afterEach方法去实现组件的scrollTo归零
Router.afterEach((to,from,next) => {
  window.scrollTo(0,0)
})

下面是真正的回滚事件可以看看

//简单的我就不写了直接上解决方案
import Vue from 'vue'
import Router from 'vue-router'
import Login from '../login/Login'
import Home from '../pages/Home'
export default new Router({
  mode: 'history',
  routes: [
    {path: 'home', name: 'Home', component: Home,meta:{title:"主页"}}
    {path: 'login', name: 'Login', component: Login,meta:{title:"登录"}}
  ],
  //有两种小的方式进行回滚
  //{ x: number, y: number }
  //{ selector: string, offset? : { x: number, y: number }}
  //第二种方式仅适用于(offset 只在 2.6.0+ 支持)
  scrollBehavior (to, from, savedPosition) {
  console.log(savedPosition)
  return { x: 0, y: 0 }
  }
})

上面我们介绍了scrollBehavior的回滚方法或者说是scrollBehavior的滚动行为,但是想必大家可能对这种方法还有些不太理解,下面我们看看官网是怎么讲解的,使用前端路由,当切换到新路由时,想要页面滚到顶部,或者是保持原先的滚动位置,就像重新加载页面那样。 vue-router 能做到,而且更好,它让你可以自定义路由切换时页面如何滚动。没错这个方法就是scrollBehavior滚动行为。另外需要注意: 这个功能只在支持 history.pushState 的浏览器中可用。更多的使用方法可以去官网去看看。

3.路由懒加载

或许不应该叫路由懒加载应该叫按需加载我觉着是更合适的。不解释以后用多了你们就会理解。下面上代码。

//代码很简单看看就知道了,下面只贴部分代码
{path:'homepages',name:'Homepages',component:homepages,resolve}

没错只要使用resolve就能实现按需加载的要求,是不是很简单,但是resolve还有很多其他使用方式建议去官网看看。另外诸如go(),history等方法的使用还是去官网上看看自己写出来理解会更快。

总结

以上所述是小编给大家介绍的Vue router的部分高级用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
Jul 14 Javascript
jquery $.ajax()取xml数据的小问题解决方法
Nov 20 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
浅谈angularjs module返回对象的坑(推荐)
Oct 21 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
JS实现元素上下左右移动效果
Oct 18 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
Apr 17 Javascript
JS打印彩色菱形的实例代码
Aug 15 #Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 #Javascript
layui 优化button按钮和弹出框的方法
Aug 15 #Javascript
jQuery实现参数自定义的文字跑马灯效果
Aug 15 #jQuery
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 #Javascript
React+Webpack快速上手指南(小结)
Aug 15 #Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 #Javascript
You might like
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
获取远程文件大小的php函数
2010/01/11 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
Express.JS使用详解
2014/07/17 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
python机器学习库常用汇总
2017/11/15 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
环境科学专业个人求职的自我评价
2013/11/28 职场文书
大学生党员自我批评
2014/02/14 职场文书
商铺租房协议书范本
2014/12/04 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
新闻稿件写作技巧
2015/07/18 职场文书