vue3中Fragment特性的一个bug,需要留意的注意事项

vue3中的Fragment 模版碎片特性是什么,简单的理解就是template模板代码不在像vue2中那样必须在根节点在包裹一层节点了。

vue2写法
html 复制代码
<template>
  <div>
    <h1>标题</h1>
    <p>正文内容</p>
  </div>
</template>
vue3写法
html 复制代码
<template>
    <h1>标题</h1>
    <p>正文内容</p>
</template>
vue3中Fragment特性的一个bug(需要留意的问题)

组件HelloWorld:

html 复制代码
<template>
    <h1>2333</h1>
    <h1>666</h1>
</template>

组件HelloWorld的使用

html 复制代码
<template>
   <HelloWorld v-if="showBool" /> <!--v-if正常-->
   <HelloWorld v-show="showBool" /> <!--v-show异常,showBool为false还是显示了-->
</template>
<script lang="ts" setup>
import HelloWorld from '../components/HelloWorld.vue'
const showBool = ref(false);
<scrip>

同时控制台waring :

复制代码
 [Vue warn]: Runtime directive used on component with non-element root node. The directives will not function as intended. 

利用开发者模式看dom结构,发现v-show的display:none属性完全是没有的。

解决方法

还是遵循vue2的写法那样,根节点在包裹一层就行了。

组件:

html 复制代码
<template>
  <div>
    <h1>标题</h1>
    <p>正文内容</p>
  </div>
</template>

dom结构发现v-show的display:none属性有了。

目前vue3.4.15这个问题仍然是没有解决的。在使用的时候还是需要注意。

相关推荐
RuoyiOffice10 小时前
SpringBoot3+Vue3 企业 AI 工作流:Tinyflow 画布、LLM 节点与在线试跑怎么落地
spring boot·大模型·vue3·agent·ai工作流·ruoyi office·tinyflow
RuoyiOffice12 小时前
Springboot + Vue3 + FormCreate表单引擎,直接用AI对话进行单据设计,告别拖拽画表单
spring boot·低代码·vue3·sse·formcreate·ruoyi office·ai表单
RuoyiOffice3 天前
SpringBoot+Vue3+Onlyoffice 企业文件生命周期:上传、业务关联、权限、版本与安全清理
spring boot·vue3·文件管理·对象存储·权限控制·ruoyi office·附件管理
格数致用6 天前
03- Luckysheet与Vue3+Electron集成实战指南
electron·vue3·luckysheet
andyweike7 天前
使用AndroidX后,Activities和Fragments的开发方式变化
fragment
陪我一起学编程12 天前
vue3笔记
前端·webpack·vue3·vite·脚手架·vue3笔记·组件式
Json____15 天前
家居装修 AI 智能咨询助手:让装修咨询从“大海捞针“变成“一问即答“
java·后端·vue3·it学习·wwwoop.com
liangshanbo121516 天前
面试题:什么是 Reflect?它解决了什么问题?
vue3·reflect
RuoyiOffice16 天前
SpringBoot3+Vue3 低代码业务表单:从拖拽设计、独立建表到审批与数据查询
spring boot·vue3·数据建模·flowable·版本管理·低代码表单·ruoyi office
RuoyiOffice16 天前
SpringBoot3 企业薪酬核算:考勤、绩效与薪资规则如何算出一张可解释的工资单
spring boot·vue3·规则引擎·hrm·ruoyi office·薪酬核算·薪资试算