文章目录

  • 一、HTML5 中的 template 标签
  • 二、Vue 中的 template 标签
  • 三、注意事项
  • 四、拓展阅读

一、HTML5 中的 template 标签

html5template标签内容在页面中并不会显示。但是在后台查看页面DOM结构却存在template标签。这是因为template标签设置了display:none;属性,天生不可见。

 <!--当前页面只显示"我是自定义表现abc"这个内容,不显示"我是template",这是因为template标签天生不可见-->
<template><div>我是template</div>
</template>
<abc>我是自定义表现abc</abc>

二、Vue 中的 template 标签

.vue 文件的基本结构如下:

<template>........
</template><script>export default {name: "demo"}
</script><style scoped>.demo {font-size: 28px;}
</style>

上面template标签是用来写 html 模板的,且内部必须只有一个根元素,像下面这样(不然IDE会报错)

<template><div class="demo">.....</div>
</template>

但有时候我们也会看到,在template上使用for循环的写法:

<template><div class="root"><!--在template上使用for循环--><template v-for="item,index in 5"><div>{{index}}---{{item}}</div></template></div>
</template>

下面我们一起通过浏览器dom渲染结果来看一下template结构是什么:

<template><div class="root"><template>看看外面的标签是什么</template></div>
</template>

在浏览器中解析完的结果:

可以看到文字外面是 div.root ,所以本质上的<template>标签并没有什么意义。template的作用是模板占位符,可帮助我们包裹元素,但在循环过程当中,template并不会被渲染到页面上.

我们继续看一下刚才的循环:

<template><div class="root"><template v-for="(item,index) in 5"><div>测试{{index}}</div></template></div>
</template>

浏览器解析后的效果:

不使用template,我们也可以这样写:

<template><div class="root"><div v-for="item,index in 5"><div>测试{{index}}</div></div></div>
</template>

但是这样循环出来会多出一层div来。

当我们不需要这外层的 div 的时候,我们可以采用上面在 <template>标签上使用 v-for来循环的方法。或者这样写:

<template><div class="root"><div v-for="item,index in 5" :key="index">测试{{index}}</div></div>
</template>

三、注意事项

vue实例绑定的元素内部template标签不支持v-show指令,即v-show="false"template标签来说不起作用。但是此时的template标签支持v-ifv-else-ifv-elsev-for这些指令。

四、拓展阅读

  • 《Vue进阶(幺叁贰):ES实现数组合并》

Vue进阶(幺肆玖):template 标签相关推荐

  1. 在Vue单文件组件的template标签上使用v-if不生效的原因

    今天晚上,我在某个组件里看到了这样一段代码,简化来讲,大概长这样: // Child.vue <template v-if="false"><div>Foo ...

  2. Vue.js 使用script或template标签创建组件模板内容

    为了使HTML代码和JavaScript代码是分离的,便于以后的阅读和维护,我们可以并建议使用<script>或<template>标签创建组件模板内容. <!DOCTY ...

  3. Vue进阶(幺肆叁):如何用绝对定位(position:absolute)完美定位布局及其注意事项

    文章目录 一.前言 二.标准流 2.1 排布规则 三.Demo 四.拓展阅读 一.前言 在<Vue进阶(幺肆贰):CSS-静态定位,相对定位,绝对定位,固定定位的用法和区别详解>一文中,讲 ...

  4. Vue进阶(幺肆捌):Vuex 辅助函数详解

    文章目录 一.前言 二.辅助函数 三.如何使用辅助函数 四.辅助函数如何去映射 vuex.store 中的属性 4.1 mapState: 把 state 属性映射到 computed 身上 4.2 ...

  5. Vue进阶(幺贰零):父组件获取子组件验证结果

    文章目录 一.前言 二.代码实现 三.拓展阅读 一.前言 在开发Vue项目过程中,代码复用之自定义组件是常做事情.当子组件为form表单的时候,父组件需要获取子组件(表单)的验证结果. 尽管有 pro ...

  6. Vue进阶(幺贰柒):插槽详解

    文章目录 一.概述 二.使用步骤 三.何时使用插槽? 四.如何使用插槽? 五.拓展阅读 一.概述 插槽就是子组件中用slot标签定义的预留位置,可以设置name属性,也可以不设置name属性,设置na ...

  7. Vue进阶(幺贰叁):v-for 实现一行展示 n 个元素

    文章目录 一.需求背景 二.需求分析 三.解决方案 四.拓展阅读 一.需求背景 在开发前端项目过程中,遇到结果列表操作栏位需要每2个按钮元素为一行展示需求. 二.需求分析 可通过将返回值封装为二维数组 ...

  8. Vue进阶(幺捌零):JS 向 Vue 传值

    文章目录 一.前言 二.思路 三.代码实现 四.效果 五.拓展阅读 一.前言 项目开发过程中,组件通过render()函数渲染生成,并在组件内部定义了自定义拖拽指令.自定义拖拽指令实现了用户可以进行元 ...

  9. Vue进阶(幺陆叁):vue项目启动后自动打开页面并设置默认浏览器

    文章目录 一.修改默认浏览器 二.vue 项目启动自动打开页面 三.拓展阅读 以windows 系统为例,操作方法如下: 一.修改默认浏览器 设置谷歌浏览器为默认浏览器. 1.首先打开"开始 ...

最新文章

  1. 封装汉语自然语言处理中的常用方法(附代码:生成中文词云)
  2. 通过boundingRectWithSize:options:attributes:context:计算文本尺寸
  3. 【云和恩墨大讲堂】从执行计划洞察ORACLE优化器的“小聪明”
  4. python 进阶_GitHub - eastlakeside/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...
  5. [知了堂学习笔记]_IO流之File类的应用
  6. 关于DllRegisterServer的调用失败的问题解决办法
  7. 如何保障项目组写出高质量的代码
  8. 什么是云计算,云计算的基本原理是什么?
  9. 微信协议简单调研笔记 (2)
  10. Leetcode刷题——题目8、9、10
  11. javascript高级程序设计读书笔记2
  12. Vue 键盘事件(keyup、keydown)
  13. STM32F767多通道ADC采集+DMA传输
  14. 用友-应收应付重分类公式设置
  15. 西行漫记(11):数字化敏捷
  16. tab栏切换html
  17. 硬盘格式化后数据如何恢复
  18. 基于Nginx1.9+LuaJIT+Kafka的点播监控系统实战(上海卓越智慧树网点播监控系统)
  19. 提升逼格的github 缩略语
  20. 通过HSSFWorkbook生成excel表格

热门文章

  1. Qt(十二)Graphics View 绘图软件(二)
  2. category中intent-filter介绍
  3. 世界大师的经典黑白摄影100张
  4. HOOPS中的OperatorControl
  5. r语言remarkdown展示图_解决R markdown 图片显示不完整
  6. docker发布项目的一般性步骤
  7. 自己写的表格的动态加载,有些不足地方
  8. 我为什么要从外包公司辞职?
  9. 在Linux内网搭建K8s集群
  10. 牛客国庆集训派对Day_1~3