VueJs监听window.resize方法示例


Posted in Javascript onJanuary 17, 2018

Vuejs 本身就是一个 MVVM 的框架。

但是在监听 window 上的 事件 时,往往会显得 力不从心。

比如 这次是 window.resize

恩,我做之前也是百度了一下。看到大家伙都为这个问题而发愁。

问题: 今天我也 遇到了这样一个问题, 是关于canvas 自适应。 根据窗口的变化去变化 canvas 的宽度

备注: 重要的问题说三遍 解决 框架内的bug 先说 框架 版本 版本 版本 (这里用的 Vue 2.x 、ES6)

解决方案:

第一步: 先在 data 中去 定义 一个记录宽度是 属性

data: {
 screenWidth: document.body.clientWidth // 这里是给到了一个默认值 (这个很重要)
}

第二步: 我们需要 讲 reisze 事件在 vue mounted 的时候 去挂载一下它的方法

mounted () {
   const that = this
   window.onresize = () => {
    return (() => {
     window.screenWidth = document.body.clientWidth
     that.screenWidth = window.screenWidth
    })()
   }
  }

第三步: watch 去监听这个 属性值的变化,如果发生变化则讲这个val 传递给 this.screenWidth

watch: {
   screenWidth (val) {
    this.screenWidth = val
   }
  }

第四步:优化 因为 频繁 触发 resize 函数,导致页面很卡的 问题

watch: {
   screenWidth (val) {
    if (!this.timer) {
     this.screenWidth = val
     this.timer = true
     let that = this
     setTimeout(function () {
      // that.screenWidth = that.$store.state.canvasWidth
      console.log(that.screenWidth)
      that.init()
      that.timer = false
     }, 400)
    }
   }
  }

最后一步: 去看看你想要的结果吧~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习ExtJS 访问容器对象
Oct 07 Javascript
JavaScript CSS 修改学习第四章 透明度设置
Feb 19 Javascript
jquery中ajax调用json数据的使用说明
Mar 17 Javascript
js关闭子窗体刷新父窗体实现方法
Dec 04 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
jQuery的观察者模式详解
Dec 22 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
Oct 27 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
Angular2+如何去除url中的#号详解
Dec 20 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
Aug 27 Javascript
详解AngularJS之$window窗口对象
Jan 17 #Javascript
React-native桥接Android原生开发详解
Jan 17 #Javascript
vue自定义指令directive实例详解
Jan 17 #Javascript
移动web开发之touch事件实例详解
Jan 17 #Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 #Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 #Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 #Javascript
You might like
用PHP查询域名状态whois的类
2006/11/25 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
24款非常有用的 jQuery 插件分享
2011/04/06 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
Python切片操作实例分析
2018/03/16 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
Python中的Numpy矩阵操作
2018/08/12 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
简历中个人求职的自我评价模板
2013/11/29 职场文书
幼教简历自我评价
2014/01/28 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
公司业务员岗位职责
2014/03/18 职场文书
植树节口号
2014/06/21 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
见习报告格式范文
2014/11/08 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书