--- title: Use useWatch Instead of watch for Isolated Re-renders impact: CRITICAL impactDescription: confines value-change re-renders to the subscribing component tags: sub, useWatch, watch, re-renders, subscription --- ## Use useWatch Instead of watch for Isolated Re-renders The `watch()` method triggers re-renders at the useForm hook level, affecting the entire form component. Use `useWatch()` in child components to isolate re-renders to only the components that need the watched value. **Incorrect (watch at root causes entire form to re-render):** ```typescript function CheckoutForm() { const { register, watch, handleSubmit } = useForm() const shippingMethod = watch('shippingMethod') // Every change re-renders entire form return (
) } ``` **Correct (useWatch isolates re-render to child component):** ```typescript function CheckoutForm() { const { register, handleSubmit, control } = useForm() return ( ) } function ShippingCostDisplay({ control }: { control: Control