Why I Chose React as My First Framework

After about six months of writing vanilla JavaScript, I decided it was time to learn a frontend framework.

I chose React, and here’s why.

The Options

The main frameworks I considered were:

  • React: Most popular, huge ecosystem, used by big companies
  • Vue: Supposedly easier to learn, growing community
  • Angular: Enterprise-focused, full framework
  • Svelte: New and interesting, compiles to vanilla JS

Why React?

Job market: Most job postings I see mention React. If I want to get hired, React seems like the safe choice.

Community: React has a massive community. When I get stuck, there are tons of tutorials, Stack Overflow answers, and resources.

Ecosystem: There are libraries for everything in React. Need routing? React Router. Need state management? Redux or Context API.

Learning curve: While React has concepts to learn, it’s “just JavaScript.” I don’t need to learn a new template syntax like in Vue or Angular.

Future-proof: React has been around since 2013 and is still growing. It seems like a safe investment of my time.

First Impressions

JSX is weird: Writing HTML in JavaScript felt strange at first. But now I like it everything is in one place.

Components make sense: Breaking UI into reusable components is intuitive once you get used to it.

Props and state are confusing: Understanding when to use props vs state took me a while.

Hooks are powerful: useState and useEffect are amazing once you understand them.

What I’m Building

To learn React, I’m rebuilding projects I made in vanilla JavaScript:

  • Todo list (of course)
  • Weather app
  • Note-taking app

Rebuilding them in React helps me see the differences and advantages.

The Learning Curve

Thinking in components: I had to change how I think about building UIs. Instead of manipulating the DOM directly, I think about state and how it affects the UI.

Understanding state: When state changes, React re-renders. This took time to understand.

Props flow down: Data flows from parent to child components through props. This one-way data flow is different from vanilla JS.

useEffect is tricky: Knowing when to use useEffect and how to handle dependencies is still confusing sometimes.

Mistakes I’m Making

Too many components: I’m breaking everything into tiny components. Sometimes a simple component is better.

Prop drilling: Passing props through multiple levels of components is annoying. I need to learn about Context API.

Not using keys properly: I keep forgetting to add keys to list items, and React warns me.

Overusing state: Not everything needs to be in state. Sometimes a regular variable is fine.

What I Like About React

Fast development: Once I got comfortable, building UIs became much faster than vanilla JS.

Reusable components: I can build a button component once and use it everywhere.

Declarative: I describe what the UI should look like, and React handles the updates.

DevTools: React DevTools extension is amazing for debugging.

What I Don’t Like

Build tools: Setting up webpack, Babel, etc. is complicated. I’m using Create React App for now, but I want to understand what’s happening under the hood.

Too many ways to do things: Class components vs functional components, Redux vs Context API, CSS-in-JS vs regular CSS. It’s overwhelming.

Bundle size: React apps can get large. I need to learn about code splitting and optimization.

Resources I’m Using

  • React documentation: The new docs are really good
  • Scrimba React course: Interactive and practical
  • YouTube tutorials: Traversy Media, Web Dev Simplified
  • Building projects: The best way to learn

What’s Next

Now that I understand React basics, I want to learn:

  • React Router (for multi-page apps)
  • Context API (for state management)
  • Custom hooks (for reusable logic)
  • How to fetch data properly in React
  • Maybe TypeScript with React

Should You Learn React?

If you’re deciding whether to learn React:

Learn it if:

  • You want to get a frontend job
  • You’re comfortable with JavaScript
  • You want to build complex UIs

Maybe wait if:

  • You’re still learning JavaScript basics
  • You’re not sure you want to do frontend development
  • You want something simpler (try Vue)

My Advice

Learn vanilla JavaScript first: I’m glad I spent months with vanilla JS before learning React. It made React easier to understand.

Don’t rush: Take time to understand components, props, and state before moving to advanced topics.

Build projects: Reading about React doesn’t help as much as building things.

Use Create React App: Don’t worry about build tools at first. Focus on learning React.

Read the docs: The React documentation is actually really good. Use it.

React felt overwhelming at first, but now I’m starting to see why it’s so popular. It makes building complex UIs much more manageable.

Still learning, still making mistakes, but excited about what I can build with React.