Angular4 变更检测和Docheck钩子
来源:互联网 发布:mysql offset limit 编辑:程序博客网 时间:2024/06/11 22:47
1.变更检测机制
(1)目的:保证组件属性和浏览器的显示同步,浏览器里面发生任何异步变化都会触发“变更检测”,当变更检测运行时,会检测应用中所有的绑定关系。
(2)检测策略:
A:Default策略:检查所有组件
B.Onpush策略:阻止检查继续走下去
(3)DoCheck钩子的调用
import { Component, OnInit, Input, OnChanges, SimpleChanges, DoCheck } from '@angular/core';@Component({ selector: 'app-child', templateUrl: './child.component.html', styleUrls: ['./child.component.css']})export class ChildComponent implements OnInit,OnChanges,DoCheck { @Input() greeting:string; @Input() user:{name:string}; message:string="初始化消息" oldUserName:string;//用来保存user.name变更之前的值 changeDetected:boolean;//标记当前的user.name属性是否发生变化 changeCount:number;//标记变更检测机制被调用的次数 ngDoCheck(): void { //触发变更检测机制就是调用DoCheck if(this.user.name!==this.oldUserName){ //user.name发生了变化 this.changeDetected=true; console.log("Docheck: user.name 从"+this.oldUserName+"变为"+this.user.name); this.oldUserName=this.user.name; } if(this.changeDetected){ this.changeCount=0 }else{ this.changeCount=this.changeCount+1; console.log("DoCheck:user.name没发生变化时,ngDoCheck方法被调用了"+this.changeCount+"次") } } ngOnChanges(changes: SimpleChanges): void { console.log(JSON.stringify(changes,null,2)); } constructor() { } ngOnInit() { }}
阅读全文
0 0
- Angular4 变更检测和Docheck钩子
- Angular4中的OnChanges钩子
- Angular4 组件生命周期钩子
- 检测并屏蔽钩子
- Angular4学习笔记(九)- 生命周期钩子简介
- js 检测输入框变更
- spring检测表单是否变更
- Angular4
- Angular4
- angularjs和angular4的区别。为什么使用angular4
- 钩子函数SetWindowsHookEx检测鼠标
- 变更请求流程和变更请求表
- 配置和变更管理
- VC++中键盘钩子和鼠标钩子
- vc++键盘钩子和鼠标钩子
- 设置全局键盘钩子和消息钩子
- git 配置本地钩子和服务器端钩子
- 做一个检测钩子程序的工具
- 链表的倒置
- Spring MVC pom.xml
- 动态SQL.绑定变量.静态SQL的性能对比
- Git服务器搭建
- 文章标题 第十二周学习报告
- Angular4 变更检测和Docheck钩子
- 实现领域驱动设计 (美)弗农著.pdf 免费下载
- C++ typedef typename 作用
- 各种报错
- Arduino--基础(二)--LCD Keypad Shield 的使用
- 郝斌老师c语言学习笔记----动态内存分配
- 简单说 JavaScript实现雪花飘落效果
- java多线程并发去调用一个类的静态方法安全性探讨
- Gradle进阶用法整理