javascript - Nuxt - 窗口内宽的吸气剂不更新
问题描述
我们的项目使用基于类的组件。我有一个获取窗口内部宽度的吸气剂,但该值仅设置一次,如果我更改窗口宽度,它不会更新。
get viewPortWidth() {
if (process.client) {
if (window.innerWidth !== undefined && window.innerHeight !== undefined) {
return window.innerWidth;
} else {
return document.documentElement.clientWidth;
}
}
return false;
}
如果我在 html 中写入值:{{viewPortWidth}}
它不会改变。在 vue devtools 中该值也是相同的。getter 不应该像计算属性一样工作吗?我怎样才能无缝更新?
解决方案
vue 计算属性基于它们的反应依赖进行缓存。window.innerWidth 不是反应性依赖。
您可以通过在“已创建”生命周期挂钩中添加事件侦听器来跟踪更改窗口大小事件,如下所示:
created(){window.addEventListener('resize', (e)=>{console.log(e)})}
推荐阅读
- dataframe - 使用 .NET for Spark 对 DataFrame 进行递归计算
- flutter - 带有 keycloak 和 openid_client 的扑动应用程序未经授权的错误
- javascript - 从本地存储中获取项目并更新/删除
- spring-boot - RabbitMQ如何控制队列消耗多少消息
- python - 如何根据Django中的选定月份过滤对象?
- mysql - 使用时间戳计算从 MAC 首次出现到最后的分钟数
- c# - 是否可以在运行时设置仅 C# 初始化属性?
- rest - 打印 RESTAPI 列表数据
- design-patterns - 如果其中不允许存储库,我如何在聚合中延迟加载实体
- java - 无法初始化 JPA EntityManagerFactory:[PersistenceUnit:默认] 无法构建 Hibernate SessionFactory