我在Nuxt 3的computed()属性中遇到了一个简单测试的问题。
const test = computed(() => {
if (process.client) {
console.log('工作了。是移动设备吗?', window.innerWidth < 768)
return window.innerWidth < 768
} else {
console.log('没有工作')
return
}
})
计算属性的结果总是正确的,但是我想在下面的模板中使用它来有条件地传递props。
<Loader v-if="isLoading" :images="test ? brands.desktopLoaderImages : brands.mobileLoaderImages" />
问题是无论结果如何,brands.mobileLoaderImages总是作为props传递给我的组件,我无法弄清楚为什么。
我尝试使用不同的技术来确定屏幕大小,而不是window.innerWidth,比如像@vueuse/core这样的专用模块,但结果都一样。我猜问题可能来自Vue的生命周期或其他什么东西?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
建议使用
useBreakpoints从VueUse中使用它的nuxt模块:const breakpoints = useBreakpoints() const test = breakpoints.smaller('md')