vue中的<template>标签与react中的<></>标签区别详解

 更新时间:2023年08月25日 10:44:21   作者:DiracKeeko  
这篇文章主要为大家介绍了vue中的<template>标签与react中的<></>标签区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

vue <template>与react<></>标签

vue2中的<template></template>标签 与 react中的<></>标签类似,在编译后渲染时不会产生DOM实体。(我们把它们都称为空标签)

在vue2中,<template></template>标签会用来作为组件的根标签(template, script, style三段式中的template)。在<template>作为根标签之外,<template>也可以做为普通的标签使用。作为根标签、作为普通标签使用的<template>在页面上均不会产生DOM实体。

在React中,<></>是React中的Fragment语法,用于将多个React元素组合在一起,或者三元运算符中空标签的占位。<></>也不会产生DOM实体。

相同点

1、两者都可以用来包裹组件的内容,也可以用来定义组件模板。

2、两者都支持嵌套使用,可以用来创建复杂的组件结构。

3、两者都支持使用条件渲染和循环渲染等功能。

不同点

1、作为根标签使用时,在 Vue2 中,组件必须包含唯一一个根元素,因此 <template></template> 标签内部只能有一个产生DOM实体的元素。

<template>  ←根标签
  <div></div>
  <span></span>
</template>

↑这种方式编译不通过,会提示"Component template should contain exactly one root element." 这里有<div></div> <span></span> 两个同级的DOM元素,违背了唯一根元素的要求。

<template>  ←根标签
  <template> ←root element
  </template>
</template>

↑这种方式编译也不通过,会提示"Cannot use <template> as component root element because it may contain multiple nodes." 作为root element的<template>可能含有多个子DOM实体,这是vue2不允许的。

而在 React 中,<></>内部可以有多个同级的元素,没有vue2<template>这么多限制。

return (
  <>
    <div></div>
    <span></span>
  </>
)

↑这里的代码没问题。

此外

在vue中使用<template></template>标签,需要注意vue实例绑定的元素内部(<div id="app"></div>内部)的template标签不支持v-show指令(即v-show="false"对template标签来说不起作用)。但v-if、v-else-if、v-else是可用的。

在react中使用<></>标签不可以传递键值或属性。

由于空标签在编译后渲染时不会产生html实体,如果空标签的子元素需要继承父元素高度,直接写height: 100%; 就可以,而如果使用<div>之类的块元素标签,则块元素标签也需要加上height: 100%。

以上就是vue中的<template>标签与react中的<></>标签区别详解的详细内容,更多关于vue <template>与react<></>标签的资料请关注脚本之家其它相关文章!

相关文章

  • 解决vue中使用less/sass及使用中遇到无效的问题

    解决vue中使用less/sass及使用中遇到无效的问题

    这篇文章主要介绍了解决vue中使用less/sass及使用中遇到无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • VUE如何将方法名字作为变量进行调用

    VUE如何将方法名字作为变量进行调用

    这篇文章主要介绍了VUE如何将方法名字作为变量进行调用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue中axios的基本用法详解

    Vue中axios的基本用法详解

    axios 是一个基于promise用于浏览器和 nodejs 的 HTTP 客户端,这篇文章主要介绍了Vue中axios的基本用法及axios的特征和使用注意细节,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Vue实现移动端日历的示例代码

    Vue实现移动端日历的示例代码

    工作中遇到一个需求是根据日历查看某一天/某一周/某一月的睡眠报告,但是找了好多日历组件都不是很符合需求,只好自己手写一个日历组件,顺便记录一下,希望对大家有所帮助
    2023-04-04
  • vue+springmvc导出excel数据的实现代码

    vue+springmvc导出excel数据的实现代码

    这篇文章主要介绍了vue+springmvc导出excel数据的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • el-form表单el-form-item验证规则里prop一次验证两个或多个值问题

    el-form表单el-form-item验证规则里prop一次验证两个或多个值问题

    这篇文章主要介绍了el-form表单el-form-item验证规则里prop一次验证两个或多个值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Vue 非常实用的自定义指令分享

    Vue 非常实用的自定义指令分享

    这篇文章主要介绍了Vue 非常实用的自定义指令分享,Vue自定义指令有全局注册和局部注册两种方式,在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也允许注册自定义指令,下文小编给大家分享那些常用到的Vue自定义指令
    2022-02-02
  • vue 动态添加/删除dom元素节点的操作代码

    vue 动态添加/删除dom元素节点的操作代码

    这篇文章主要介绍了vue 动态添加/删除dom元素,需要在点击添加时,增加一行key/value的输入框;点击垃圾桶图标时,删除对应行,本文结合实例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-12-12
  • vue中的循环遍历对象、数组和字符串

    vue中的循环遍历对象、数组和字符串

    这篇文章主要介绍了vue中的循环遍历对象、数组和字符串,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 一文秒懂Vue3的v-model

    一文秒懂Vue3的v-model

    v-model 是 Vue 内置的指令作为属性接收一个变量(不能是常量)绑定到普通组件和自定义组件中,本文给大家介绍Vue3的v-model示例代码,感兴趣的朋友跟随小编一起看看吧
    2023-02-02

最新评论