You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-2Lines changed: 18 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -26,11 +26,15 @@ You should learn, in this order, **without skipping ahead or learning concurrent
26
26
*[ES6](#learning-es6)
27
27
*[Routing](#learning-routing)
28
28
*[Flux](#learning-flux)
29
+
30
+
**You don't need to learn all of these to be productive with React.** Only move to the next step if you have a problem that needs to be solved.
31
+
32
+
Additionally, there are a few topics that are often mentioned in the React community that are "bleeding edge". The topics below are interesting, but they're difficult to understand and **aren't required for most apps**.
33
+
*[Inline styles](#learning-inline-styles)
34
+
*[Server rendering](#learning-server-rendering)
29
35
*[Immutable.js](#learning-immutablejs)
30
36
*[Relay, Falcor, etc](#learning-relay-falcor-etc)
31
37
32
-
Also: **you don't need to learn all of these to be productive with React.** Only move to the next step if you have a problem that needs to be solved.
33
-
34
38
## Learning React itself
35
39
36
40
It’s a common misconception that you need to waste a lot of time setting up tooling to start to learn React. In the official documentation you’ll find a [copy-paste HTML template](https://facebook.github.io/react/docs/getting-started.html#quick-start-without-npm) that you can save in an `.html` file and get started right away. **No tooling is required for this step, and don’t start learning extra tooling until you’re comfortable with React basics.**
@@ -77,6 +81,18 @@ React components are arranged in a hierarchy. Most of the time, your data model
77
81
78
82
If you have decided to use Flux, the most popular and well-documented Flux library is [Redux](http://redux.js.org/). There are *a lot* of alternatives out there, and you’ll be tempted to evaluate lots of them, but my advice is to just stick with the most popular one.
79
83
84
+
## Learning inline styles
85
+
86
+
A lot of people reuse CSS styles with complicated style sheets. Since React makes writing reusable components easy, your stylesheets can be less complicated. Many in the community (including myself) are experimenting with getting rid of stylesheets altogether.
87
+
88
+
This is a fairly crazy idea for a number of reasons. It makes media queries more difficult, and it's possible that there are performance limitations using this technique. **When starting out with React, just style things the way you normally would.** Once you've got a feel for how React works, you can look at alternate techniques. One popular one is [BEM](https://en.bem.info/).
89
+
90
+
## Learning server rendering
91
+
92
+
Server rendering is often called "universal" or "isomorphic" JS. It means that you can take your React components and render them to static HTML on the server. You need server rendering if you notice that your initial render is too slow (because the browser needs to download a bunch of JavaScript) or if you want to improve your search engine ranking (while it's true that Google now indexes client-rendered content, as of January 2016 every time it's been measured it's been shown to negatively affect ranking, potentially because of initial render performance).
93
+
94
+
Server rendering still requires a lot of tooling to get right. Since it transparently supports React components written without server rendering in mind, you should build your app first and worry about server rendering later. You won't need to rewrite all of your components to support it.
95
+
80
96
## Learning Immutable.js
81
97
82
98
[Immutable.js](https://facebook.github.io/immutable-js/) provides a set of data structures that can help to solve certain performance issues when building React apps. It's a great library, and you'll probably use it a lot in your apps moving forward, but it's completely unnecessary until you have an appreciation of the performance implications.
0 commit comments