首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角10+鼠标事件总是不断地触发角度检测的变化。

角10+鼠标事件总是不断地触发角度检测的变化。
EN

Stack Overflow用户
提问于 2022-12-01 05:51:15
回答 1查看 27关注 0票数 0

我将任何事件绑定到组件html页面中的元素上,当元素事件触发.although时,组件会持续检测更改。我尝试构建一个简单的项目,除了角核心库之外,没有依赖。

守则:

代码语言:javascript
复制
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  changeDetection:ChangeDetectionStrategy.OnPush
})
export class AppComponent {
  title = 'angular-tour-of-heroes';


  onClick() {
    console.log("click");
  }

  value(){
    console.log("detect fired");
    return "value";
  }

}


app.component.html code

<button type="button" (click)="onClick()">button</button>
{{value()}}

当我单击按钮时,浏览器控制台输出:

点击

探测点火

当我单击按钮并输出‘检测启动’时,甚至没有任何代码调用该方法:ChangeDetectorRef.markForCheck()

谢谢!

我认为在执行changedetectionref.markForCheck()之前,单击按钮时不应该执行value()方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-01 06:56:41

在组件输入()引用更改以外的其他几种情况下,OnPush更改检测器都会被触发,它还会被触发:

  • 如果组件事件处理程序被触发
  • ,如果一个可观察到的通过异步管道链接到模板的对象发出一个新的值

https://blog.angular-university.io/onpush-change-detection-how-it-works/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74637432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档