Vue进阶(幺肆玖):template 标签
文章目录
- 一、HTML5 中的 template 标签
- 二、Vue 中的 template 标签
- 三、注意事项
- 四、拓展阅读
一、HTML5 中的 template 标签
html5
中template
标签内容在页面中并不会显示。但是在后台查看页面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-if
、v-else-if
、v-else
、v-for
这些指令。
四、拓展阅读
- 《Vue进阶(幺叁贰):ES实现数组合并》
Vue进阶(幺肆玖):template 标签相关推荐
- 在Vue单文件组件的template标签上使用v-if不生效的原因
今天晚上,我在某个组件里看到了这样一段代码,简化来讲,大概长这样: // Child.vue <template v-if="false"><div>Foo ...
- Vue.js 使用script或template标签创建组件模板内容
为了使HTML代码和JavaScript代码是分离的,便于以后的阅读和维护,我们可以并建议使用<script>或<template>标签创建组件模板内容. <!DOCTY ...
- Vue进阶(幺肆叁):如何用绝对定位(position:absolute)完美定位布局及其注意事项
文章目录 一.前言 二.标准流 2.1 排布规则 三.Demo 四.拓展阅读 一.前言 在<Vue进阶(幺肆贰):CSS-静态定位,相对定位,绝对定位,固定定位的用法和区别详解>一文中,讲 ...
- Vue进阶(幺肆捌):Vuex 辅助函数详解
文章目录 一.前言 二.辅助函数 三.如何使用辅助函数 四.辅助函数如何去映射 vuex.store 中的属性 4.1 mapState: 把 state 属性映射到 computed 身上 4.2 ...
- Vue进阶(幺贰零):父组件获取子组件验证结果
文章目录 一.前言 二.代码实现 三.拓展阅读 一.前言 在开发Vue项目过程中,代码复用之自定义组件是常做事情.当子组件为form表单的时候,父组件需要获取子组件(表单)的验证结果. 尽管有 pro ...
- Vue进阶(幺贰柒):插槽详解
文章目录 一.概述 二.使用步骤 三.何时使用插槽? 四.如何使用插槽? 五.拓展阅读 一.概述 插槽就是子组件中用slot标签定义的预留位置,可以设置name属性,也可以不设置name属性,设置na ...
- Vue进阶(幺贰叁):v-for 实现一行展示 n 个元素
文章目录 一.需求背景 二.需求分析 三.解决方案 四.拓展阅读 一.需求背景 在开发前端项目过程中,遇到结果列表操作栏位需要每2个按钮元素为一行展示需求. 二.需求分析 可通过将返回值封装为二维数组 ...
- Vue进阶(幺捌零):JS 向 Vue 传值
文章目录 一.前言 二.思路 三.代码实现 四.效果 五.拓展阅读 一.前言 项目开发过程中,组件通过render()函数渲染生成,并在组件内部定义了自定义拖拽指令.自定义拖拽指令实现了用户可以进行元 ...
- Vue进阶(幺陆叁):vue项目启动后自动打开页面并设置默认浏览器
文章目录 一.修改默认浏览器 二.vue 项目启动自动打开页面 三.拓展阅读 以windows 系统为例,操作方法如下: 一.修改默认浏览器 设置谷歌浏览器为默认浏览器. 1.首先打开"开始 ...
最新文章
- 封装汉语自然语言处理中的常用方法(附代码:生成中文词云)
- 通过boundingRectWithSize:options:attributes:context:计算文本尺寸
- 【云和恩墨大讲堂】从执行计划洞察ORACLE优化器的“小聪明”
- python 进阶_GitHub - eastlakeside/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...
- [知了堂学习笔记]_IO流之File类的应用
- 关于DllRegisterServer的调用失败的问题解决办法
- 如何保障项目组写出高质量的代码
- 什么是云计算,云计算的基本原理是什么?
- 微信协议简单调研笔记 (2)
- Leetcode刷题——题目8、9、10
- javascript高级程序设计读书笔记2
- Vue 键盘事件(keyup、keydown)
- STM32F767多通道ADC采集+DMA传输
- 用友-应收应付重分类公式设置
- 西行漫记(11):数字化敏捷
- tab栏切换html
- 硬盘格式化后数据如何恢复
- 基于Nginx1.9+LuaJIT+Kafka的点播监控系统实战(上海卓越智慧树网点播监控系统)
- 提升逼格的github 缩略语
- 通过HSSFWorkbook生成excel表格