Science Knowings: JavaScript Course For Social Media

Controlled Components vs Uncontrolled Components

Previously: React Forms

We've covered React Forms, which allow us to create user interfaces for collecting user input. Let's now dive deeper into Controlled and Uncontrolled Components.

Controlled Components

Controlled Components

What are Controlled Components?

Controlled components use state to track user input. The state is updated whenever the user changes the input, and the updated value is reflected in the input field.

Why Use Controlled Components?

  • Maintain a single source of truth for form data in the component's state.
  • Handle validation and error messages easily.
  • Easily reset form values.

How to Create Controlled Components

const MyTextInput = (props) => {
  const [value, setValue] = useState('');
  const onChange = (e) => setValue(;
  return <input value={value} onChange={onChange} />;

Uncontrolled Components

Uncontrolled Components

What are Uncontrolled Components?

Uncontrolled components manage state outside the component. The value of the input field is not directly stored in the component's state.

Why Use Uncontrolled Components?

  • Simpler to implement, especially for simple forms.
  • No need to handle state management within the component.
  • Less boilerplate code.

How to Create Uncontrolled Components

const MyTextInput = (props) => {
  const ref = useRef('');
  return <input ref={ref} />;

Differences Between Controlled and Uncontrolled Components

Feature Controlled Components Uncontrolled Components
State Management Component state Outside component
Validation Easy to implement More challenging
Form Reset Easy to reset using state Need to manipulate DOM directly

When to Use Controlled Components

  • When you need to validate user input.
  • When you need to reset the form values programmatically.
  • When you need to handle complex form interactions.

Advantages of Controlled Components

  • Easier to validate and handle errors.
  • Centralized state management.
  • Better performance for large forms.

Disadvantages of Controlled Components

  • More boilerplate code.
  • Can be more challenging to implement for simple forms.

Advantages of Uncontrolled Components

  • Less boilerplate code.
  • Easier to implement for simple forms.
  • No need to handle state management.

Disadvantages of Uncontrolled Components

  • More challenging to validate and handle errors.
  • Less control over form state.
  • Can lead to performance issues for large forms.

Next: Form Validation

Next, we'll explore how to validate form input to ensure that it meets specific criteria. Follow us to learn more!