Vue3页面中两个小游戏组件仅显示一个的问题求助
排查两个Vue3组件仅显示一个的问题
以下是几个最可能的原因和解决办法:
样式重叠覆盖
因为是复制的组件,大概率两个组件用了相同的固定/绝对定位样式,或者重复的容器ID,导致两个组件叠在一起。检查两个组件的样式文件,给NamesByPictures设置独立的位置(比如不同的top值),或者修改重复的类名、ID。也可以直接给父容器加布局样式强制分开:<div class="custom-container-fixed" style="display: flex; flex-direction: column; gap: 30px; padding: 20px;"> <Memory key="2"></Memory> <NamesByPictures key="1"></NamesByPictures> </div>组件未正确注册
确认NamesByPictures在当前页面的script里是否正确导入并注册:<script setup> import Memory from './components/Memory.vue' import NamesByPictures from './components/NamesByPictures.vue' </script>全局注册的话要检查组件名拼写是否和模板里一致。
内部条件渲染冲突
检查两个组件内部的v-if/v-show逻辑,复制组件时可能把原组件的状态变量也复制了,导致两个组件共用同一个状态,其中一个被隐藏。比如原组件里有isVisible变量,新组件要改成独立的变量名。全局状态/事件冲突
如果用了Pinia/Vuex全局状态,或者绑定了相同的全局事件,两个组件的状态可能互相覆盖。比如两个组件都修改了同一个全局变量,导致其中一个组件的渲染异常。
内容的提问来源于stack exchange,提问作者M.Koops
相关产品推荐
相关产品推荐

