解决vue3组件无根节点时v-show=false不生效的问题
在子组件上使用v-show时,子组件无根节点,v-show=false
仍会显示子组件。
从控制台能够看到段落节点无根节点,并且没有 display: none
。
父组件
<template>
<div>
<h1>父组件</h1>
<Child v-show="false" />
</div>
</template>
<script lang="ts" setup>
import { ref, reactive, defineExpose, defineProps, defineEmits } from 'vue';
import Child from './child.vue';
</script>
<style lang="scss" scoped></style>
子组件
<template>
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
</template>
<script lang="ts" setup>
import { ref, reactive, defineExpose, defineProps, defineEmits } from 'vue';
</script>
<style lang="scss" scoped></style>
为子组件添加根节点后
<template>
<div>
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
</div>
</template>
<script lang="ts" setup>
import { ref, reactive, defineExpose, defineProps, defineEmits } from "vue";
</script>
<style lang="scss" scoped></style>
空空如也!