繁体   English   中英

角度5:应用程序组件重绘了几次

angular 5: app component redraw several times

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我的app.component.html:

{{bla()}}

我的app.component.ts:

import {Component, OnInit, AfterViewInit} from '@angular/core';

@Component({
    selector: 'idr-app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.scss']
})
export class AppComponent implements AfterViewInit {
    constructor() {}
    ngAfterViewInit() {}

    bla(){
        console.log(77777);
    }
}

我的app.module.ts:

import {BrowserModule} from '@angular/platform-browser';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';

@NgModule({
    declarations: [
        AppComponent,
    ],
    imports: [
      BrowserModule,


     BrowserAnimationsModule,
    ],
    providers: [

    ],
    bootstrap: [AppComponent],
})
export class AppModule {
}

在控制台中,我看到这种情况:

app.component.ts:13 77777
app.component.ts:13 77777
core.js:3688 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
app.component.ts:13 77777
app.component.ts:13 77777

如果我在子组件中使用类似{{bla()}}的内容,则77777的显示时间会更多

所以有人知道为什么要重画几次?

1 个回复

这是由于Angular的默认更改检测策略所致。 如果将策略更改为onPush,您将看到该函数仅执行一次。

这是一个StackBlitz示例: https ://stackblitz.com/edit/angular-dfhfs7 ? file = src%2Fapp%2Fapp.component.ts

如果注释掉更改检测,或将其设置为默认值,则会多次看到控制台语句。 如果将其设置为onPush,则只会看到一次log语句。

这里的文章可能会有所帮助: https : //netbasal.com/a-comprehensive-guide-to-angular-onpush-change-detection-strategy-5bac493074a4

1 如何重绘Java Swing应用程序的所有可见组件?

我有一个JFrame,它允许用户调整颜色。 使用反射将此颜色设置为Colors类的静态字段。 这是Colors类: 还有许多其他组件,位于几个JFrame中,并且它们都使用Colors类的字段。 当我手动使它们重新绘制(例如,通过调整大小)时,它们都正确地重新绘制。 但是,如 ...

2 强制DirectX应用程序重绘

有谁知道我们如何强制DirectX应用程序刷新(重绘)? 我正在尝试连接DirectX绘图函数,但不知道如何刷新绘图以拦截api调用。 谢谢。 ...

3 重绘Windows应用程序

我正在使用C#编写软件,每次执行一项艰巨的任务时,我都会切换窗口以使其完成对窗口的固定。 不知道如何措词,但所有按钮都消失或变成“洞”。 我知道该应用程序正在运行,因为一段时间后进度栏再次出现。 我该如何解决? 我一直在搜索,并且我确定它与doubleBuffering有关。 ...

5 MFC重绘窗口在画图应用程序中的问题

我正在尝试在MFC上编写Paint,但是在绘制新图形,移动现有图形或调整现有图形大小时,重新绘制窗口存在问题。 当我在每次移动鼠标后使用Invalidate()或InvalidateRect(NULL) ,效果很好,但是在添加3-4位数字后,应用程序崩溃,因为它无法及时重绘所有窗口。 我已经 ...

6 如何在鼠标移动时重绘Java SWT应用程序?

我正在尝试编写一个简单的应用程序,在整个屏幕上创建一个透明覆盖,并在我当前的鼠标位置画一条线。 然后该行应该跟随我的鼠标移动,直到应用程序退出时按下鼠标。 我目前在应用程序中重绘的问题不起作用,我想我错过了放置和/或误解了应该如何使用重绘。 如何正确地重新绘制这样的应用程序并节省资 ...

2015-02-15 20:59:40 1 181   java/ swt
7 除非调整大小,否则XLib应用程序不会重绘

所以,我有一个使用XLib的C ++应用程序。 在其中,我使用ctime库访问日期和时间,并在Expose事件中,从中创建一个字符串并将其放在窗口中,居中。 我的问题是,时间仅在调整大小时才更新,因此,例如,除非我不断调整窗口大小,否则秒数不会改变。 这是代码: 如果您有任何想知道 ...

8 弹性屏幕在flex应用程序中重绘?

我有一个基于flex / actionscript的项目。 该项目具有各种视图堆栈和选项卡导航器,以及一些弹出窗口。 整个事情在pureMVC框架中管理。 在各种视图状态之间切换,打开弹出窗口,切换选项卡等时,我发现该应用程序表现出各种重绘故障。 视图的某些部分将以奇怪的方式部分绘制 ...

9 基本的Qt应用程序无法在Debian上正确重绘窗口

我已经按照Zetcode Qt教程中的说明编译了一个基本的Qt应用程序: 当我运行它时,窗口出现,但Qt不在背景中绘制。 我最终从背后的窗户上看到了幻影: http : //i.stack.imgur.com/yg79s.png 调整大小时,该窗口将正确绘制背景-大部分时间。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM