
Vue中template的相关注意点
发布日期:2021-05-07 09:43:30
浏览次数:21
分类:精选文章
本文共 1071 字,大约阅读时间需要 3 分钟。
使用template进行条件渲染
如下所示,有一段内容:
尊贵的年费会员
此处内容仅年费会员可见!亲爱的普通用户
您不是年费会员无权访问,请前往用户中心充值!
这段内容如果想要加v-if
进行条件渲染,一种做法是在外面套一个<div>
,代码如下:
尊贵的年费会员
此处内容仅年费会员可见!亲爱的普通用户
您不是年费会员无权访问,请前往用户中心充值!
但这样的话,渲染出来的html就会多出没用的div,这种情况下可以使用<template>
,它可以作为不可见的包裹元素,最终渲染结果将不包含<template>
,代码如下:
尊贵的年费会员
此处内容仅年费会员可见!亲爱的普通用户
您不是年费会员无权访问,请前往用户中心充值!
为什么不推荐使用template进行列表渲染
Vue官方文档上给了一个案例,使用template进行列表渲染:
<template>
可以进行列表渲染。但是熟悉Vue的同学都知道,v-for
需要绑定key
,这样才能让虚拟DOM高效更新。问题就出在这里,如果试图给<template>
绑定key
,那么控制台就会报错: <template> cannot be keyed. Place the key on real elements instead.
相信大家看到这个提示就明白问题出在哪里了。上一节内容讲到,<template>
元素不会出现在最终的渲染结果中。假如给<template>
元素绑定key
,相当于key
值就丢失了,等于没有绑定。
有的同学可能会问,key
可以给内部元素绑定吗?答案是可以的,但强烈不推荐。原因是如果内部有很多平级的元素,就得给每个元素都加一个key
,如下所示:
- { { item.msg }}
别以为这样就没问题了,按上面的逻辑,每一次循环就会有两个元素带有一模一样的key
,显然这样是会报错的:
[Vue warn]: Duplicate keys detected: ‘xxx’. This may cause an update error
所以最好的解决方案就是不要使用<template>
进行列表渲染。
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月17日 06时31分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Spring Security 实战干货:理解AuthenticationManager
2021-05-09
Java对象转JSON时如何动态的增删改查属性
2021-05-09
Python 面向对象进阶
2021-05-09
Linux常用统计命令之wc
2021-05-09
Git安装及使用以及连接GitHub方法详解
2021-05-09
docker容器与虚拟机的区别
2021-05-09
shell脚本里使用echo输出颜色
2021-05-09
Python2跟Python3的区别
2021-05-09
并发编程——IO模型详解
2021-05-09
Java之封装,继承,多态
2021-05-09
wait()与notify()
2021-05-09
使用js打印时去除页眉页脚
2021-05-09
Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
2021-05-09
ORA-00904: "FILED_TYPE": 标识符无效
2021-05-09
Redis系统学习之Redis性能测试工具
2021-05-09
数据仓库系列之维度建模
2021-05-09
Scala教程之:函数式的Scala
2021-05-09
java中DelayQueue的使用
2021-05-09
java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
2021-05-09
线程stop和Interrupt
2021-05-09