React 中是否有相当于 Vue 的 nextTick() 函数?

Rod*_*igo 12 javascript dom reactjs vue.js

Vue 有这个nextTick函数,它是一个等待 DOM 刷新的异步函数。当您想要直接对元素执行某些操作(例如使用 滚动 DIV)时,这特别有用scroll()。这避免了将此调用包装到盲注中的需要setTimeout()

在React中我就求助于setTimeout()过去。是否有相当于nextTick()或有更好的方法来做到这一点?

Tho*_*ion 9

在这种情况下可以使用setTimeout来实现这个目标。

请参阅:https ://developer.mozilla.org/en-US/docs/Web/API/setTimeout#late_timeouts

因为它会在当前线程结束时执行参数中给出的函数,所以它接近 的行为Vue.nextTick

示例: https: //codesandbox.io/s/gallant-roman-y0b9un? file=/src/App.js

  • 我不知道在没有[指定延迟]的情况下调用“setTimeout”(/sf/ask/635851611/)。差不多就这样了。 (3认同)

Sam*_*evy 6

您可以使用它reactHooks来处理应用程序的生命周期。

在您的功能组件中:

import React, { useEffect } from 'React'

useEffect(() => {
   // your method
}, []);
Run Code Online (Sandbox Code Playgroud)

这将在第一次渲染中渲染。

您可以设置在其更改时要侦听的依赖项。

import React, { useEffect } from 'React'

useEffect(() => {
   // your method
}, [yourDependence]); //it will run every yourDependence change and the first time.
Run Code Online (Sandbox Code Playgroud)