Component-based approach
What a component-based approach is
A component-based approach is organizing the interface as a set of independent, reusable blocks (components), each of which:
- encapsulates its own logic and style,
- manages its own state,
- and can be combined with others to build complex interfaces.
A component is like a "function for UI": it takes input data (props) -> returns an interface (JSX).
Example
function Button({ label, onClick }) {
return <button onClick={onClick}>{label}</button>;
}
function App() {
return (
<div>
<Button label="Save" onClick={() => alert('Saved!')} />
<Button label="Delete" onClick={() => alert('Deleted!')} />
</div>
);
}We described one
Buttoncomponent, but we can use it many times with different data.
Why React chose a component-based approach
1. Reusability
Each component can be reused in different parts of the app. This reduces code duplication and bugs.
2. Isolation and predictability
Components are independent: each has its own state, logic, and UI. This means:
- a bug in one component does not break the others;
- the code is easier to test and maintain.
3. Composition (Composition over Inheritance)
In React, the interface is assembled from components, like LEGO blocks.
<App>
<Header />
<Content>
<Sidebar />
<Article />
</Content>
<Footer />
</App>Each component does one specific job, and together they form the whole application.
4. Separation of Concerns
Instead of splitting "by technology" (HTML, CSS, JS), React splits by functionality:
One component = all the logic, structure, and style of a specific block.
function UserCard({ user }) {
return (
<div className="card">
<img src={user.avatar} />
<h3>{user.name}</h3>
</div>
);
}Here the structure, the logic, and the visual representation are all together, which makes the component self-contained and easy to understand.
5. Simplifying scaling
As a project grows, a component-based approach lets you:
- split the code into modules,
- work on different parts in parallel,
- plug in design systems and library UI components.
6. Interface consistency
By using the same components (for example, <Button />, <Input />),
you guarantee a consistent style and behavior across the whole application.
Summary
| Benefit | What it gives |
|---|---|
| Reusability | One component - many uses |
| Isolation | Minimal side effects |
| Composition | Easy to assemble complex interfaces |
| Cleanliness | Each component does one job |
| Scalability | The team can work on different parts independently |
| Consistency | Unified style and UX |
Main idea:
React treats the interface not as a "page" but as a tree of components, where each component is a small, predictable, independent piece of UI.
Short Answer
Interview readyA concise answer to help you respond confidently on this topic during an interview.