问题标签 [lifecycle-hook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2880 浏览

angular - 模板中的 {{ call() }} 多次执行方法块?

这里测试方法中的语句被多次调用。为什么会这样?DOM 是否被 AngularJS2 多次重新创建?

0 投票
2 回答
1190 浏览

javascript - 如果它是可变单元格,如何在 didReceiveAttrs 钩子中获取真实的 attr 值

请参阅下面的示例代码。鉴于我有一个组件my-text-box

my-text-box.hbs

我想value通过didReceiveAttrs钩子观察属性的变化,而不是observers为了更好的性能。

my-text-box.js

我想要的是我不必关心 attr 值是否是一个mutable单元格,我应该得到一种总能获得真正价值的方法。我看到有一个HTMLBars hook ember-htmlbars/hooks/get-value,但它没有暴露给公共 API。我在想的是,也许Ember应该改变两者newAttrsoldAttrs拥有直接价值而不是那些mutable对象。

有人有办法处理吗?谢谢!

0 投票
2 回答
33738 浏览

angular - 如何为 Angular2 组件实现多个生命周期挂钩?

我知道在 Angular2 中定义组件时,您可以实现多种类型的生命周期钩子,例如 OnDestroy、NgOnInit 等。

在我在网上看到的关于使用这些钩子的每一段示例代码中,我只看到一次只使用一个。例如

或者

但是如果你想对单个组件使用多个呢?例如,如果您想要 OnChanges 和 OnDestroy 的特定行为怎么办?我尝试了以下方法:

我确信答案很简单,但我很难找到答案。

先感谢您!

0 投票
0 回答
874 浏览

angular - 在 Angular2 生命周期钩子中调用 detectChanges()?

我所知道的是,我们调用 detectChanges() 来触发本地更改检测检查。我已经看到了一些在 ngOnChanges(change) 钩子中调用 detectChanges() 的代码,我想知道为什么有人想做这样的事情?我的意思是,如果未检测到更改检测,则不会调用 ngOnChanges 对吗?那么为什么要在钩子体内调用detectChanges呢?

0 投票
2 回答
835 浏览

angular - 来自同级组件 angular2 的输入人口的生命周期挂钩

我有两个兄弟组件,如下所示

当用户单击代理列表时,在站列表组件代理中@Input被填充。in stationlist只有在ngModel单击其兄弟组件后才能填充,或者换句话说,输入代理被填充。我想要输入从不在的同级组件中填充的确切时刻。输入人口后是否有任何事件或某些事情我可以在其中做一些事情???ngOnInit

0 投票
1 回答
10388 浏览

angular - 如何在 ngOnInit() 上只运行一次函数,而不是在从另一个 routerLink 返回时再次运行?

HomeComponent

我在组件加载时检索数据。routerLink例如,当用户单击另一个SettingsComponent并返回到 时HomeComponent,当然会再次调用该函数,因为该组件已再次加载。但是每次我返回组件时,它都会再次调用函数,从而创建太多不需要的 HTTP 请求。我需要防止这种情况并确保该函数仅在第一次被调用。我该怎么做呢?我应该使用其他一些组件生命周期挂钩吗?

0 投票
1 回答
279 浏览

angular - 在 Angular 4 中实现指令以不断循环通过主机上的背景颜色

我正在学习角度 4,并希望实现一个指令,该指令导致宿主元素的背景颜色在数组中列出的 7 中循环。理想情况下,我希望它是连续的。我不知道我需要挂钩哪些生命周期挂钩。这就是我目前所拥有的。目前,它甚至没有使用SetTimeOut. 我已经注释掉了该While块,因为它只是挂起浏览器。

html:

0 投票
2 回答
2464 浏览

javascript - 如何在 `componentDidUpdate` 中调用 `dispatch` 而不会陷入无限循环?

我正在制作一个非常简单的 React 组件,它显示从远程源获得的数据。在获取数据之前,它必须等待用户正确登录。这是我尝试这样做的方法:

用我自己的话来说,每次与该组件(在本例中为loggedInprop)相关的状态的一部分被更新时,componentDidUpdate都会被调用,如果我看到用户已登录,我就可以获取数据。

这实际上工作得很好,除了一个主要问题:似乎调用dispatch最终会再次触发componentDidUpdate,所以我最终陷入了无限循环。我什至不必在任何地方监听这些调度事件,使用该dispatch函数的简单事实足以componentDidUpdate再次触发。

我的猜测是 dispatch 执行了我内部使用的根 reducer setState,从而再次触发了整个update生命周期链。

这种事情通常是怎么做的?如何dispatch从内部调用componentDidUpdate而不会陷入无限循环?

0 投票
2 回答
6814 浏览

angular - 在其他组件完全加载后触发一个组件方法

我有两个组件,都<app-root>像这样加载:

index.html

有没有办法在组件完全加载<app-header>后触发组件方法?<app-calendar>

0 投票
0 回答
37 浏览

observable - FirebaseListObservable 可观察的孩子

我目前有这个代码:

在测试中,我注意到对消息的任何更改都会导致受影响的team-message组件被重新渲染。我目前Replies在每个team-message组件中都有一个可折叠部分,每次用户提交回复时它都会关闭——折叠是默认状态——我不希望这种情况发生。

我的印象是,这种智能组件/哑(ish)组件方法不应该导致我的“触摸”team-message组件持续重新渲染,但它确实如此。

我有什么办法可以防止此 Lifecycle Hook 再次被调用,或者将回复打开/关闭状态传递给后续组件?