关于angular2更新时机的一些发现

引入:

angular2官网关于管道(Pipe)的介绍中说明,angular2的管道分为pure和impure。

  • 非纯管道Impure pipes

Angular会在每个组件的变更检测周期中执行非纯管道。 非纯管道可能会被调用很多次,和每个按键或每次鼠标移动一样频繁。

Angular executes an impure pipe during every component change detection cycle. An impure pipe will be called a lot, as often as every keystroke or mouse-move.

  • 纯管道Pure pipes

Angular只有在它检测到输入值发生了纯变更时才会执行纯管道。 纯变更是指对原始类型值(String、Number、Boolean、Symbol)的更改, 或者对对象引用(Date、Array、Function、Object)的更改。

Angular executes a pure pipe only when it detects a pure change to the input value. A pure change is either a change to a primitive input value (String, Number, Boolean, Symbol) or a changed object reference (Date, Array, Function, Object).

Angular会忽略(复合)对象内部的更改。 如果我们更改了输入日期(Date)中的月份、往一个输入数组(Array)中添加新值或者更新了一个输入对象(Object)的属性,Angular都不会调用纯管道。

Angular ignores changes within (composite) objects. It won’t call a pure pipe if we change an input month, add to an input array, or update an input object property.

具体问题:

在以前的开发过程中,我们遇到过,一个双向绑定的数组,使用push或者splice函数时,画面并未发生刷新。目前看了正是由于类似的情况

解决方法:

第一种:

新建一个数组,重新赋值给双向绑定的变量,这样,相当于引用发生了变化,所以会更新模板。

第二种:

使用ngIf来切换模板文件中的代码段(可能是一个组件)。


第一种是方法性能应该更好。如果这种情况下,也有一个类似管道中pure的参数来设置就好了,目前还没发现其他方法。

关于angular2更新时机的一些发现相关推荐

  1. 深入理解 vue DOM 更新时机

    vue3 官方文档中对 DOM 更新时机 的解释是 当你更改响应式状态后,DOM 也会自动更新.然而,你得注意 DOM 的更新并不是同步的.相反,Vue 将缓冲它们直到更新周期的 "下个时机 ...

  2. vue nextTick深入理解-vue性能优化、DOM更新时机、事件循环机制

    一.定义[nextTick.事件循环] nextTick的由来: 由于VUE的数据驱动视图更新,是异步的,即修改数据的当下,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图 ...

  3. 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    Angular2是对Angular1的一次彻底的,破坏性的更新. 相对于Angular1.x,借用某果的广告语,唯一的不同,就是处处都不同. 首先,推荐的语言已经不再是Javascript,取而代之的 ...

  4. 小程序:浅谈小程序更新机制,发版后多久能全覆盖

    小程序会伴随业务的成长不断更新版本,那么发布了新版本后多长时间能被用户看到? 有人说,微信小程序的更新机制长久以来都是迷一样的存在,当你发布一个新版本的时候,不知道何时用户才能看到.明明已经发布了,却 ...

  5. RN中热更新CodePush使用

    RN中涉及到热更新使用微软提供的CodePush插件实现,具体使用如下: 更新流程 1.安装 code-push-cli插件(在项目根目录) npm install -g code-push-cli ...

  6. 微信小程序运行及更新机制

    微信小程序运行及更新机制 1.微信小程序运行机制 1.1 前台和后台 1.2 小程序启动:冷启动和热启动 1.3 小程序销毁 2.微信小程序更新机制 2.1 启动时同步更新 定期检查发现版本更新 用户 ...

  7. Android 与 Chrome OS 中针对大屏幕设备的更新

    随着智能终端硬件的不断革新,大尺寸设备的种类越来越丰富,比如手机.折叠屏设备.平板电脑.ChromeBook.外接显示器的 ChromeBox 和集成屏幕的 Chromebase 等.Google 团 ...

  8. 不定期更新,记录一些小知识

    作者:东北大胖子 原文来源: https://tidb.net/blog/c6e3a445 不定期更新,记录一些小知识,欢迎指正,本帖尽量使用文字描述,相关图片尽量粘贴,方便大家搜索~ Mysql向T ...

  9. [原创]国内大公司开源的安卓有关的库(持续更新中 )

    安卓开发一直在用大公司的开源库,下面来整理一下与安卓开发有关的库. 一.阿里巴巴 (一)UI有关 1. 多页面切换场景统一解决方案 UltraViewPager UltraViewPager 是阿里开 ...

最新文章

  1. openssl、x509、crt、cer、key、csr、ssl、tls
  2. 快讯 | 清华数为物联网数据库IoTDB被评为“优秀大数据产品”
  3. python 中 sorted() 和 list.sort() 的用法
  4. 【网页前端设计Front end】JavaScript教程.上(看不懂你来打我)
  5. 购物中心潮--我的创业之路
  6. 数列互质(莫队算法)
  7. mysql 时间计算函数_MySQL时间计算函数DATE_SUB()用法简介说明
  8. MAPinfo学习笔记
  9. 【pandas教程】索引操作
  10. 数据库宿舍管理系统MySQL表_数据库-宿舍管理系统
  11. IP防护等级标准及规定
  12. IE疑难杂症之已取消网页导航--该站点安全证书的吊销信息不可用
  13. 西瓜文案:水果西瓜的文案,水果文案西瓜
  14. Ajax的网络响应时间
  15. SpMV矩阵格式自动调优
  16. C++主流IDE推荐
  17. egret 白鹭笔记(2020)简单笔记
  18. jpg转换为word可编辑的怎么转换呢
  19. 《30岁之前的每一天》读书笔记
  20. 两个地址之间的距离测量(使用高德API)

热门文章

  1. leetcode-python-优先级队列与时间复杂度
  2. python通过hive transform处理数据
  3. Dubbo学习总结(2)——Dubbo架构详解
  4. 求最大值及其下标编程总结
  5. 2018-2019-1 20165201 实验五 通讯协议设计
  6. 基于ASP.NET MVC的ABP框架入门学习教程
  7. UTF-8笔记170330
  8. 验证中文的正则表达式
  9. 动手开发一个简易的 PHP for Git Server 第一章
  10. 修正IE6中FIXED不能用的办法,转载