NgStyle和NgIf控制HTML标签显示的区别
通常web开发者会选择将元素样式属性display设为none来隐藏目标元素。采用这种方式,这些元素虽然不可见却仍然保存在DOM中,这样带来的好处是,如果元素不久就需要再次显示,组件不需要重新被初始化,组件的状态因为之前被保留所以可以马上显示。但是将元素隐藏也会带来别的问题,在Angular应用里,如果隐藏一个元素,它仍然保留在DOM树中,Angular会继续检测那些可能发生变化的数据绑定,组件的所有行为将会保持,这种情况下,组件及其所有的子节点仍然会占用资源,消耗更多的内存,从而影响性能。
NgStyle和NgIf两种指令均可以实现控制元素的显示,具体如下:
使用NgStyle指令可以通过改变样式将元素隐藏,当在组件中使用NgStyle指令进行如下设置时,可以将组件在DOM树中隐藏,示例代码如下:
<div [ngStyle]="{'display': 'none'}">display none</div>
NgIf指令不是通过改变样式将元素隐藏,而是根据输入变量布尔值,在输入变量值为false时,把这些元素从DOM中移除,停止监测相关组件绑定的属性是否有变化,释放它的DOM事件监听器并且销毁组件,组件将会被垃圾回收并且释放内存。示例代码如下:
<div *ngIf="condition''>当condition的值为true,此组件可见</div>
-- 我是大自然的搬运工,原文摘自:《揭秘Angular 2》-- 228页。
NgStyle和NgIf控制HTML标签显示的区别的更多相关文章
- ElementUI使用v-if控制tab标签显示遇到的Duplicate keys detected: 'xxx'问题
今天工作遇到一个问题: 需求背景:页面中有几个tab,需要根据登录用户的权限控制tab标签的显示与隐藏 . <el-tabs @tab-click="handleClick" ...
- 【js】【图片显示】js控制html页面显示图片方式
js控制html页面显示图片方式,只需要引入“jquery-1.11.2.min.js” js: /* 引用 <script src="jquery-1.11.2.min.js&quo ...
- Struts1.x 中处理乱码及通过标签显示数据
1.通过filter解决乱码问题 网页的请求到达之前,先要经过filter的处理: 提取数据出现乱码:request.setCharacterEncoding("UTF-8"); ...
- Struts2(六.用标签显示用户列表及Value Stack和Stack Context)
一.用Struts2标签显示用户列表 原理: 在struts中可以通过在action中将所有用户的信息存入到某个范围中,然后转向userlist.jsp,进行访问 原则: 在jsp网页上,尽量不要出现 ...
- 微信小程序点击控制元素的显示与隐藏
微信小程序点击控制元素的显示与隐藏 首先我们先来看一下单个点击效果 我们来看一下wxml中的代码: <view class="conten"> <view cla ...
- 控制label标签的宽度,不让它换行 label标签左对齐
1==>控制label标签的宽度.解决字段名太长时,不会换行显示 label-width="100px" label标签的宽度是100px; style="widt ...
- legend3---19、要更多的从服务器端控制元素的显示和隐藏,而不要是页面端
legend3---19.要更多的从服务器端控制元素的显示和隐藏,而不要是页面端 一.总结 一句话总结: 这样可以控制很多页面端的非法操作 1.html标签中data方式的数据,修改之后在标签上只显示 ...
- wmctrl像xmonad那样方便地用快捷键来控制任务窗口的显示
窗口左右互搏之wmctrl篇 分类: LINUX 2012-10-24 16:34:41 一直有个念头,就是能够像xmonad那样方便地用快捷键来控制任务窗口的显示,今天弄wmctrl,刚好有时间 ...
- 浏览器内核控制Meta标签说明文档【转】
背景介绍 由于众所周知的情况,国内的主流浏览器都是双核浏览器:基于Webkit内核用于常用网站的高速浏览.基于IE的内核用于兼容网银.旧版网站.以360的几款浏览器为例,我们优先通过Webkit内核渲 ...
随机推荐
- 「LOJ#10068」「一本通 3.1 练习 3」秘密的牛奶运输(次小生成树
题目描述 Farmer John 要把他的牛奶运输到各个销售点.运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点. 运输的总距离越小,运输的成本也就越低.低成本的运输是 F ...
- javacv实现实时视频截图和录像服务easyCV
本项目维护于github:https://github.com/eguid/easyCV 1.介绍 本项目基于javaCV1.4.x. 其中实现了 (1)实时视频截图服务(支持rtsp/rtmp/ht ...
- poj 3415 Common Substrings —— 后缀数组+单调栈
题目:http://poj.org/problem?id=3415 先用后缀数组处理出 ht[i]: 用单调栈维护当前位置 ht[i] 对之前的 ht[j] 取 min 的结果,也就是当前的后缀与之前 ...
- Android应用如何反馈Crash报告
转自:http://www.cnblogs.com/draem0507/archive/2013/05/25/3099461.html 一.为什么要Crash crash可以理解成堕落,垮台.按照我们 ...
- [bzoj2301]Problem b莫比乌斯反演+分块优化
题意: $\sum\limits_{\begin{array}{*{20}{c}}{a < = x < = b}\\{c < = y < = d}\end{array}} {\ ...
- php使用curl带cookie访问一直失败求助
最近需要批量向织梦后台导入一些数据,但是遇到了一个头疼的问题. 环境:xampp + 别人的dede后台. 首先,利用curl发送post请求登录login.php,成功,并且保存了cookie文件. ...
- zoj2901【DP·二进制优化】
题意: 要排一个L长度的序列,当 j 放在 i 后面的时候会增加v[ i ][ j ]的值,求构成L长度序列的最大值. 思路: 可以想到预处理任意两点<i,j>的最大值是多少,然后题目还有 ...
- MySQL学习中,遇到的问题记录
一.安装mysql时,报错:1045 原因:因为之前安装过mysql,之后再安装会出现这个问题. 解决: 删除之前的残留就好了 方法:清除mysql之前的历史残留
- 51nod1101(dp)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101 题意:中文题诶- 思路:dp 我们用dp[i][j]存 ...
- duliu——思维+线段树
题目 [题目描述]小 `D` 喜欢出毒瘤题毒人.当然,他的毒瘤更多体现在若干个难题组合在同一场比赛时.小 `D` 脑中有 $n$ 个毒瘤题 idea,第 $i$ 个的毒值为$d_i$.当第 $i$ 个 ...