, 14 tweets, 7 min read Read on Twitter
Why React? A thread by the request of my friend @hackSultan.

👇🏾
All apps require user interaction. On the web, responding (reacting?) to user events was often slow and inconvenient.

It was also hard to manage/track the state of a given user interface.

Fundamentally, this is the problem React solves.
DOM updates without React:

- expensive
- error-prone
- hard to keep track of

DOM updates with React:

- managed complexity
- more predictable
- explicitly managed

👌🏾
React champions the component model and breaks down elements (components) of user interfaces into small functions that compose together to form a user interface.

Moreover, React makes state updates explicit and provides comfortable primitives to manage them.
What that means is that with React, you get to build your User Interfaces without worrying about the common DOM/state pitfalls that we used to lose sleep over. You are free to build and iterate faster than ever before.
What’s more is that React isn’t really a framework, but a library. It doesn’t care how you handle other concerns of an application:

- routing
- data access
- internationalization
- etc.

Instead, it employs the single responsibility principle and does one thing well: rendering.
React makes use of and encourages a number of functional programming patterns like immutability, purity and composition.

The component model also encourages small, testable and reusable code.

Because of these reasons, learning React will make you a better engineer in general.
(Very simplified; broad strokes)

Immutability: don’t change things, produce new ones instead

Purity: no side effects, always return the same output for a given input

Composition: combine small components (functions of state) to form your UI
Further, React is in a lot of places on the web with significant distribution. Most of the internet uses it.

This means it is more likely that you will be able to get a job in a place that you wish if you know React.
So, to summarize:

- React solves the UI Problem of interactivity
- It focuses on solving the one problem well
- It teaches you better practices
- It has a lovely community
- It has widespread adoption

I hope this was helpful.
Here are some resources + people to follow to help you on your journey:

- React Docs: reactjs.org/docs/getting-s…

- React course on @freeCodeCamp: freecodecamp.org/news/learn-rea…

- Courses by @ReactTraining: courses.reacttraining.com

- React Tutorial by @kentcdodds: egghead.io/courses/the-be…
- Learning React by @eveporcello and Alex Banks: g.co/kgs/85VDLn

- React course by @tylermcginnis: tylermcginnis.com/reviews/

- React for Beginners by @wesbos: reactforbeginners.com

- Reactiflux discord channel by @gabe_g2i: reactiflux.com
- Composing Software by @_ericelliott: medium.com/javascript-sce…

- Functional Light JavaScript by @getify: github.com/getify/Functio…

- React subreddit moderated by @swyx: reddit.com/r/reactjs
All the best, friends! I am rooting for you!
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Tejas Kumar
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!