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 相关文章推荐
js DataSet数据源处理代码
Mar 29 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 Javascript
Chrome扩展页面动态绑定JS事件提示错误
Feb 11 Javascript
JS实现向表格行添加新单元格的方法
Mar 30 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
May 04 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
Mar 01 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
vue1.0和vue2.0的watch监听事件写法详解
Sep 11 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
Jul 22 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
2010/06/04 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP如何使用Memcached
2016/04/05 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Python3生成手写体数字方法
2018/01/30 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python实现扫描日志关键字的示例
2018/04/28 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python获取交互式ssh shell的方法
2019/02/14 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
无工作经验者个人求职信范文
2013/12/22 职场文书
初中家长评语大全
2014/12/26 职场文书
实习证明模板
2015/06/16 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL