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 AJAX实现目录浏览与编辑的代码
Oct 21 Javascript
JS 无法通过W3C验证的处理方法
Mar 09 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
js导出txt示例代码
Jan 14 Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
Dec 21 Javascript
Angularjs实现数组随机排序的方法
Oct 02 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 Javascript
解决Vue router-link绑定事件不生效的问题
Jul 22 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实现简单爬虫的方法
2015/07/29 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
JQuery入门——用映射方式绑定不同事件应用示例
2013/02/05 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
关于python的list相关知识(推荐)
2017/08/30 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python读取Excel实例详解
2018/08/17 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
Python图像读写方法对比
2020/11/16 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
一套比较完整的软件测试人员面试题
2012/05/13 面试题
解决方案设计综合面试题
2015/08/31 面试题
自我评价中英文语句
2013/11/30 职场文书
行政办公员自我评价分享
2013/12/14 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
报告会主持词
2014/04/02 职场文书
班长竞选演讲稿
2014/04/24 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang
Python简易开发之制作计算器
2022/04/28 Python