Lazar Nikolov
—When handling form input, the first thing that comes to your mind is using the useState
hook to hold the form values. The useState
hook is a great way to handle form input, but
it comes with a downside. Every time the state changes, the component re-renders. This is
not a problem when you have a small form, but when you have a large form with many input fields,
or you don’t neccessarily need to re-render the UI, this can be a performance issue.
The solution is to use the useRef
hook instead of useState
. The useRef
hook is a
great way to store a mutable value that doesn’t trigger a re-render. The useRef
hook
returns an object with a current
property, which is mutable and can hold any value.
const inputRef = useRef();
With this we’ve created a ref that we can assign to an input field.
<input type="text" ref={inputRef} placeholder="Enter your name" />
If you notice, the value
and onChange
props are missing from the input field. These
inputs are called uncontrolled inputs.
To obtain the values from the input field, we can use the current
property of the ref
whenever we need it, for example in the form handler method:
const handleSubmit = () => { const name = inputRef.current.value; console.log(name); // the value of the input field };
We can do the same for all of the input fields in the form. This way we can avoid re-rendering
the component when the state changes, and we can also avoid using the onChange
event handler
for each input field.
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
Here’s a quick look at how Sentry handles your personal information (PII).
×We collect PII about people browsing our website, users of the Sentry service, prospective customers, and people who otherwise interact with us.
What if my PII is included in data sent to Sentry by a Sentry customer (e.g., someone using Sentry to monitor their app)? In this case you have to contact the Sentry customer (e.g., the maker of the app). We do not control the data that is sent to us through the Sentry service for the purposes of application monitoring.
Am I included?We may disclose your PII to the following type of recipients:
You may have the following rights related to your PII:
If you have any questions or concerns about your privacy at Sentry, please email us at [email protected].
If you are a California resident, see our Supplemental notice.