created() {
this.windowInnerWidth = window.innerWidth
console.log(this.windowInnerWidth)
},
watch: {
windowInnerWidth(newValue,oldValue) {
this.windowInnerWidth = newValue
console.log('windowInnerWidth:',newValue,oldValue)
},
【以下回答由 GPT 生成】
首先,我可以看到你已经在 created
钩子函数中获取了初始的窗口大小数据,并使用了 console.log
输出到控制台。
要动态获取视口大小数据,你应该监听 window
对象上的 resize
事件,并在事件处理函数中更新 windowInnerWidth
数据。这样,每当视口大小发生变化时,该事件处理函数就会被触发。
以下是具体的解决方案:
在 mounted
生命周期钩子函数中,添加 resize 事件监听器。
创建一个方法 updateWindowInnerWidth
,该方法会在 resize 事件处理函数中调用,用于更新 windowInnerWidth
数据。
在 beforeDestroy
生命周期钩子函数中,移除 resize 事件监听器,以防止在组件销毁之后继续触发事件处理函数。
下面是代码示例:
export default {
data() {
return {
windowInnerWidth: 0
};
},
mounted() {
window.addEventListener('resize', this.updateWindowInnerWidth);
// 初始化时调用一次
this.updateWindowInnerWidth();
},
beforeDestroy() {
window.removeEventListener('resize', this.updateWindowInnerWidth);
},
methods: {
updateWindowInnerWidth() {
this.windowInnerWidth = window.innerWidth;
console.log('windowInnerWidth:', this.windowInnerWidth);
}
}
};
现在,你可以在 updateWindowInnerWidth
方法中添加你想要根据不同视口大小进行的样式更改。注意,resize
事件会在视口大小变化时频繁触发,你可以使用节流函数来控制事件处理函数的执行频率,以优化性能。
通过这样的解决方案,你可以在动态监测视口大小变化,并根据不同的视口大小来改变样式。
【相关推荐】
加个监听事件,监听resize事件来动态监听视口大小的变化
window.onresize = function () {
// do something
}