Как да използвам куката useRef за съхраняване на променливи стойности?
Nov 13, 2025
Остави съобщение
Здравейте! Като доставчик на куки съм виждал от първа ръка какuseRefhook може да промени играта, когато става въпрос за съхраняване на променливи стойности в React приложения. В този блог ще разбия как можете ефективно да използватеuseRefкука за тази цел.
Първо, нека разберем каквоuseRefе. Това е вградена кука на React, която ви позволява да създадете променлив обект, който се запазва в рендери. Мислете за това като за малка кутия за съхранение, до която вашият компонент има достъп и може да променя, без да задейства повторно изобразяване. Това е изключително полезно, когато трябва да следите нещо, което се променя с течение на времето, но не засяга визуалния изход на вашия компонент.
Да започнем с един прост пример. Да предположим, че създавате компонент за хронометър. Искате да следите изминалото време, но не искате компонентът да се изобразява отново всеки път, когато времето се промени. Ето къдеuseRefидва на помощ.
import React, {useRef, useEffect} from'react'; const Хронометър = () => { const intervalRef = useRef(null); const timeRef = useRef(0); useEffect(() => { intervalRef.current = setInterval(() => { timeRef.current += 1; }, 1000); return () => { clearInterval(intervalRef.current); }; }, []); return ( <div> <p>Изминало време: {timeRef.current} секунди</p> </div> ); }; експортиране на хронометър по подразбиране;
В този пример създаваме две референции:интервал РефиtimeRef. Theинтервал Рефсе използва за съхраняване на препратката къмsetIntervalфункция, така че да можем да го изчистим по-късно, когато компонентът се демонтира. ThetimeRefсъхранява изминалото време. Забележете, че актуализиранетоtimeRef.currentне кара компонента да се изобразява повторно, което е точно това, което искаме в този случай.
Друг обичаен случай на употреба заuseRefима директен достъп до DOM елементи. Да приемем, че искате да фокусирате върху поле за въвеждане, когато се щракне върху бутон. Можете да използватеuseRefза да получите препратка към входния елемент.
import React, {useRef} from'react'; const FocusInput = () => { const inputRef = useRef(null); const handleClick = () => { inputRef.current.focus(); }; връщане ( <div> <input ref={inputRef} type="text" /> <button onClick={handleClick}>Фокус върху въвеждането</button> </div> ); }; експортиране по подразбиране FocusInput;
Тук създаваме рефinputRefи го прикрепете към входния елемент с помощта нарефатрибут. Когато се щракне върху бутона, получаваме достъп дотоксвойство на ref, което ни дава действителния DOM елемент, и след това извиквамефокусметод върху него.


Сега нека поговорим какuseRefсе различава от използването на състояние. Състоянието в React се използва за стойности, които влияят на визуалния изход на компонент. Когато актуализирате състоянието, React рендерира повторно компонента, за да отрази новата стойност. от друга страна,useRefе за стойности, които не трябва да задействат повторно изобразяване. Например, ако използвате библиотека на трета страна, която има собствено вътрешно управление на състоянието, можете да използватеuseRefза съхраняване на препратка към екземпляра на библиотеката, без да причинява ненужни повторни изобразявания.
Едно нещо, което трябва да имате предвид, когато използватеuseRefтова ли етоксвойството може да бъде променено по всяко време и React няма да разбере за тези промени. Така че, трябва да внимавате, когато го използвате. Например, ако използватеuseRefза да съхраните функция, уверете се, че не променяте препратката към функцията вътре в ref, без да вземете предвид последиците.
Като доставчик на куки знам, че имам добро разбиране заuseRefможе наистина да изравни уменията ви за развитие на React. Независимо дали изграждате прости компоненти или сложни приложения,useRefможе да осигури чист и ефективен начин за управление на променливи стойности.
Ако сте на пазара за висококачествени куки, вижте нашитеАксесоари за баня Куки за кърпииЗлатни куки за баня. Това не са куките React, за които говорихме, но са страхотни за вашата баня!
Ако се интересувате от обсъждане на вашите изисквания за кука, независимо дали става въпрос за вашите проекти в React или за вашата баня, не се колебайте да се свържете с нас. Ние сме тук, за да ви помогнем да намерите идеалните решения за вашите нужди.
препратки:
- Реагирайте на официалната документация на useRef hook
- Реагирайте на общностни форуми и блогове за случаи на практическа употреба
