问题标签 [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.
angular - 模板中的 {{ call() }} 多次执行方法块?
这里测试方法中的语句被多次调用。为什么会这样?DOM 是否被 AngularJS2 多次重新创建?
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
应该改变两者newAttrs
并oldAttrs
拥有直接价值而不是那些mutable
对象。
有人有办法处理吗?谢谢!
angular - 如何为 Angular2 组件实现多个生命周期挂钩?
我知道在 Angular2 中定义组件时,您可以实现多种类型的生命周期钩子,例如 OnDestroy、NgOnInit 等。
在我在网上看到的关于使用这些钩子的每一段示例代码中,我只看到一次只使用一个。例如
或者
但是如果你想对单个组件使用多个呢?例如,如果您想要 OnChanges 和 OnDestroy 的特定行为怎么办?我尝试了以下方法:
我确信答案很简单,但我很难找到答案。
先感谢您!
angular - 在 Angular2 生命周期钩子中调用 detectChanges()?
我所知道的是,我们调用 detectChanges() 来触发本地更改检测检查。我已经看到了一些在 ngOnChanges(change) 钩子中调用 detectChanges() 的代码,我想知道为什么有人想做这样的事情?我的意思是,如果未检测到更改检测,则不会调用 ngOnChanges 对吗?那么为什么要在钩子体内调用detectChanges呢?
angular - 来自同级组件 angular2 的输入人口的生命周期挂钩
我有两个兄弟组件,如下所示
当用户单击代理列表时,在站列表组件代理中@Input
被填充。in stationlist只有在ngModel
单击其兄弟组件后才能填充,或者换句话说,输入代理被填充。我想要输入从不在的同级组件中填充的确切时刻。输入人口后是否有任何事件或某些事情我可以在其中做一些事情???ngOnInit
angular - 如何在 ngOnInit() 上只运行一次函数,而不是在从另一个 routerLink 返回时再次运行?
HomeComponent
我在组件加载时检索数据。routerLink
例如,当用户单击另一个SettingsComponent
并返回到 时HomeComponent
,当然会再次调用该函数,因为该组件已再次加载。但是每次我返回组件时,它都会再次调用函数,从而创建太多不需要的 HTTP 请求。我需要防止这种情况并确保该函数仅在第一次被调用。我该怎么做呢?我应该使用其他一些组件生命周期挂钩吗?
angular - 在 Angular 4 中实现指令以不断循环通过主机上的背景颜色
我正在学习角度 4,并希望实现一个指令,该指令导致宿主元素的背景颜色在数组中列出的 7 中循环。理想情况下,我希望它是连续的。我不知道我需要挂钩哪些生命周期挂钩。这就是我目前所拥有的。目前,它甚至没有像使用SetTimeOut
. 我已经注释掉了该While
块,因为它只是挂起浏览器。
html:
javascript - 如何在 `componentDidUpdate` 中调用 `dispatch` 而不会陷入无限循环?
我正在制作一个非常简单的 React 组件,它显示从远程源获得的数据。在获取数据之前,它必须等待用户正确登录。这是我尝试这样做的方法:
用我自己的话来说,每次与该组件(在本例中为loggedIn
prop)相关的状态的一部分被更新时,componentDidUpdate
都会被调用,如果我看到用户已登录,我就可以获取数据。
这实际上工作得很好,除了一个主要问题:似乎调用dispatch
最终会再次触发componentDidUpdate
,所以我最终陷入了无限循环。我什至不必在任何地方监听这些调度事件,使用该dispatch
函数的简单事实足以componentDidUpdate
再次触发。
我的猜测是 dispatch 执行了我内部使用的根 reducer setState
,从而再次触发了整个update
生命周期链。
这种事情通常是怎么做的?如何dispatch
从内部调用componentDidUpdate
而不会陷入无限循环?
angular - 在其他组件完全加载后触发一个组件方法
我有两个组件,都<app-root>
像这样加载:
和index.html
有没有办法在组件完全加载<app-header>
后触发组件方法?<app-calendar>
observable - FirebaseListObservable 可观察的孩子
我目前有这个代码:
在测试中,我注意到对消息的任何更改都会导致受影响的team-message
组件被重新渲染。我目前Replies
在每个team-message
组件中都有一个可折叠部分,每次用户提交回复时它都会关闭——折叠是默认状态——我不希望这种情况发生。
我的印象是,这种智能组件/哑(ish)组件方法不应该导致我的“触摸”team-message
组件持续重新渲染,但它确实如此。
我有什么办法可以防止此 Lifecycle Hook 再次被调用,或者将回复打开/关闭状态传递给后续组件?