在VueJs中如何监听window.resize具体该怎么实现?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在VueJs中如何监听window.resize具体该怎么实现?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1630字,纯文字阅读大概需要3分钟。
内容图文
![在VueJs中如何监听window.resize具体该怎么实现?](/upload/InfoBanner/zyjiaocheng/288/bedaf743a8e5439393a55f91751417d9.jpg)
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) } } }
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在jQuery中如何实现鼠标响应式淘宝动画效果
如何使用jQuery实现鼠标响应式透明度渐变动画效果
在JavaScript中如何判断NaN
在nodejs环境下微信扫码支付功能如何实现?
使用Vue实现底层原理(详细教程)
在js中如何实现控制文件拖拽并获取拖拽内容功能
以上就是在VueJs中如何监听window.resize具体该怎么实现?的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的在VueJs中如何监听window.resize具体该怎么实现?全部内容,希望文章能够帮你解决在VueJs中如何监听window.resize具体该怎么实现?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。