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 相关文章推荐
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
简单谈谈json跨域
Mar 13 Javascript
javascript RegExp 使用说明
May 21 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
Jan 10 Javascript
详解angular用$sce服务来过滤HTML标签
Apr 11 Javascript
微信小程序 数据绑定及运算的简单实例
Sep 20 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
vue中Axios的封装与API接口的管理详解
Aug 09 Javascript
Vue路由前后端设计总结
Aug 06 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
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
php简单截取字符串代码示例
2016/10/19 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
document.write的几点使用心得
2014/05/14 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
简单实现JavaScript图片切换效果
2016/11/28 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
python中Flask框架简单入门实例
2015/03/21 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
专升本个人自我评价
2013/12/22 职场文书
初中校园之声广播稿
2014/01/15 职场文书
运动会解说词100字
2014/01/31 职场文书
雷人标语集锦
2014/06/19 职场文书
反四风对照检查材料
2014/09/22 职场文书
销售员岗位职责
2015/02/10 职场文书
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技