window.onresize监听窗口宽度踩坑 vue

踩坑方法
vue组件监听页面宽度变化最近网上比较常用的方法
此方法可以实现监听窗口变化 但是! 不支持组件重复循环使用 不支持组件重复循环使用 不支持组件重复循环使用 重要的事情说三遍 !
此方法在多个相同组件渲染时 只会触发最后一个组件的宽度监听其他的没有触发

mounted() {
        //获取屏幕尺寸
        this.screenWidth = document.body.clientWidth
        window.onresize = () => {
            console.log('高度');
            //屏幕尺寸变化
            return (() => {
                this.screenWidth = document.body.clientWidth
            })()
        }
    },
 
 watch: {
        screenWidth: function (n, o) {
            if (n <= 1200) {
                console.log('屏幕宽度小于1200了')
            } else {
                console.log('屏幕宽度没有小于1200')
            }
        }
    }

正确方法
当前页相同组件重复循环使用 都会触发宽度监听

    mounted() {
   		 window.addEventListener("resize", this.watchWindowSize);
    },
	methods:{
  		 watchWindowSize() {

            // 获取窗口的宽度和高度,不包括滚动条

            var w = document.documentElement.clientWidth;

            var h = document.documentElement.clientHeight;

            // 打印结果

	            console.log( "宽: " + w + ", " + "高: ")
	
	        },	
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值