useRef は、値または DOM 要素への永続的な参照を作成できる React フックです。再レンダリングをトリガーする状態を管理するために使用される useState とは異なり、useRef は主に副作用または DOM 要素に直接アクセスするために使用されます。
useRef フックは次の場合に特に役立ちます:
useRef フックは、.current プロパティを持つオブジェクトを返します。 useRef を呼び出すと、引数として渡した値への永続的な参照が作成されます。この参照は、返されたオブジェクトの .current プロパティに保存されます。
参照を作成するには、初期値を指定して useRef を呼び出すだけです。
import { useRef} from 'react' const App = () => { const countRef = useRef(0) return (...) } export default App
上記の例では、countRef は初期値 0 への参照です。
参照値にアクセスするには、.current プロパティを使用して countRef オブジェクトを呼び出すだけです
import { useRef} from 'react' const App = () => { const countRef = useRef(0) const increment = () => { countRef.current } return () } export default AppCount: {countRef.current}
上の例では、ボタンをクリックすると、countRef を増やすインクリメント関数が呼び出されますが、useRef を更新するため、カウントは
Count: {countRef.current}
で更新されません。 useState. のような再レンダリングを引き起こさないようにします。期待した結果を得るには、コードを以下の例に更新します。
import { useRef, useState } from 'react' const App = () => { const countRef = useRef(0) const [count, setCount] = useState(0) const increment = () => { countRef.current setCount(countRef.current) } return () } export default AppCount: {count}
useRef フックを使用して HTML 要素にアクセスし、プロパティを変更することができます
const App = () => { const inputRef = useRef(null) const handleFocus = () => { inputRef.current.focus() } return( ) }
useState や変数とは異なり、useRef は、キャッシュされたデータや構成設定などの再レンダリング間で値とデータを渡すことができます。
場合によっては、useRef を使用すると、不必要な再レンダリングが回避され、コンポーネントの最適化に役立ちます。たとえば、項目の大きなリストをレンダリングするコンポーネントがある場合、useRef を使用してそれをキャッシュし、変更された項目のみを変更して再レンダリングできます。
const inputRef = useRef(null); returnコンソールにエラーが表示される可能性があります:;
警告: 関数コンポーネントに参照を与えることはできません。この参照にアクセスしようとすると失敗します。 React.forwardRef() を使用するつもりでしたか?
const inputRef = useRef(null); returnカスタムコンポーネント:;
const inputRef = useRef(null); return結論;
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3