我们在使用input的时候,很常见的给它绑定一个state,而每次onChange的时候去更新这个state,这是我们通常使用的做法,但每次状态改变,会造成控件的重新渲染。试想一下,如果一个form有多个这样的控件,势必造成一些资源浪费,尽管你可能认为这些浪费微不足道。比如下面的这个例子:
如果使用useRef可以避免这种情况发生,
React jsx 接受 'ref' 作为 DOM 元素的属性。 这充当反应内存中的选择器,以识别它被标记的元素。 使用 react 提供的 useRef 钩子并分配给输入元素。 现在这个 inputRef 可以在整个组件中访问,就像状态变量一样。现在很明显,当您在框中输入时,我们看不到重新渲染记录在控制台中。 并且值仍然在变化并且它使用 inputRef 进行更新,您可以使用 inputRef.current.value 在组件内的任何位置访问它。 这为您节省了不必要的组件重新渲染,现在您的应用程序在管理运行时内存方面更加清晰和更好。
也许你觉得这些重新渲染的消耗微不足道,但从性能的方面来考量,请记住Every byte counts. 能省一点是一点。
留言与评论(共有 0 条评论) “” |