template标签在vue组件中扮演怎样的角色?

最开始一直觉得template包裹一个组件 代表着之后的部分为一个整体
后来发现其他人代码中出现template嵌套的情况 就是很多嵌套div外都会包裹template 例如

<template>
   <div>
      <template>
            <div>
                <div>
                    <div></div>
                </div>
            </div>
    </template>
    <template>
            <div>
                <div>
                    <div></div>
                </div>
            </div>
    </template>
    <template>
            <div>
                <div>
                    <div></div>
                </div>
            </div>
    </template>
    <template>
            <div>
                <div>
                    <div></div>
                </div>
            </div>
    </template>
   </div>
 </template>

补充:这里的template不是指最外层的template 是单文件组件内部的template

1、这样写是否有什么好处?
2、template有什么明确语义?
3、在vue组件当中与div相比有何异同?

阅读 9.1k
6 个回答

首先明确一点:你所说的组件是不是单文件组件
如果是的话,单文件组件必须要用 <template> 标签来指定渲染模板。

至于这样写有什么好处,template 有什么明确语义,这个可以在文档中看到说明:

HTML <template> 元素是一种用于保存客户端内容的机制,该内容在页面加载时不被渲染,但可以在运行时使用 JavaScript 进行实例化。

可以将一个模板视为正在被存储以供随后在文档中使用的一个内容片段

虽然, 在加载页面的同时,解析器确实处理 <template>元素的内容,这样做只是确保这些内容是有效的; 然而,元素的内容不会被渲染。

希望对你有帮助

这种写法基本没用。
除了最外层template表示api里的template: '字符串模板',内层的template是要配合v-ifv-for做分组使用的。

我的理解template应该是告诉vue-loader这个是html标签,需要编译处理。和style标签和script标签区分开来,如果不加这个标签的话那只能用div或者其他标签,但是这样在使用的时候就容易出问题,写代码的时候可能给跟div加一下样式啥的,如果没有template标签,不好处理

你可以把template理解成占位符

应该是将之间的字符串 编译成html语言的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏