|
1 |
| -### Prerequities |
2 |
| -- [Learn Javascript](https://github.com/getify/You-Dont-Know-JS) |
3 |
| -- Learn HTML & CSS |
4 |
| -### Kick start |
5 |
| -- [Official Tutorial](https://reactjs.org/tutorial/tutorial.html) |
6 |
| -- [Read the docs!](https://reactjs.org/docs/hello-world.html) |
7 |
| -### Basics |
| 1 | +# <p align="center">ReactJS</p> |
| 2 | + |
| 3 | +### Preface |
| 4 | + |
| 5 | +An open source javaScript library for building user interfaces by Facebook inc. |
| 6 | + |
| 7 | +### Why ReactJS ? |
| 8 | + |
| 9 | +- **View in MVC** – ReactJS is the view layer in our applications and it does this job really well without trying to achieve anything more. |
| 10 | + |
| 11 | +- **Virtual DOM** – This is probably why most developers are so attracted to React. React manages its own DOM in memory. The most expensive operation most web apps suffer is mutating the DOM. React's approach is to maintain a virtual representation of the DOM which allows it to calculate differences in the DOM so that it only mutates the part of the DOM that actually needs to be updated. This is a huge benefit! |
| 12 | + |
| 13 | +- **Declarative** – Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. |
| 14 | + |
| 15 | +- **Component-Based** – Build encapsulated components that manage their own state, then compose them to make complex UIs. |
| 16 | + |
| 17 | +- **Server Side Rendering** – Combining a NodeJS server and ReactJS helps us build even more complex applications by pre-rendering the initial state of our ReactJS components. |
| 18 | + |
| 19 | +- **Javascript** – It is JavaScript after all. We can use latest JavaScript goodies by transpiling our code with the tools we prefer like webpack, browserify, rollup, babel etc |
| 20 | + |
| 21 | +- **Non-Opinitated** – It doesnt make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code. |
| 22 | + |
| 23 | +- **Testability** – React components simplify testing greatly. As a proof of it's simplicity, our new web client has more tests than any of our other clients. |
| 24 | + |
| 25 | +- **Functional Programming** – ReactJS stateless components act like pure functions while composition is highly enforced instead of inheritance to reuse code between components. |
| 26 | + |
| 27 | +# Curriculum |
| 28 | +- [Prerequisites]() |
| 29 | +- [] |
| 30 | + |
| 31 | +## Prerequities |
| 32 | +Experience with the basic web technologies ie. HTML, CSS & JavaScript will help. |
| 33 | + |
| 34 | +## Basics |
8 | 35 | - ["Hello, World!" with create-react-app](https://reactjs.org/docs/hello-world.html)
|
9 | 36 | - [Components & Props](https://reactjs.org/docs/components-and-props.html)
|
10 | 37 | - Popular ES6+ features using in React Apps
|
11 |
| - - [Arrow Functions](http://babeljs.io/learn-es2015/#ecmascript-2015-features-arrows-and-lexical-this) |
| 38 | + –[Arrow Functions](http://babeljs.io/learn-es2015/#ecmascript-2015-features-arrows-and-lexical-this) |
12 | 39 | - [Object Destructuring](http://babeljs.io/learn-es2015/#ecmascript-2015-features-destructuring)
|
13 | 40 | - [Classes](http://babeljs.io/learn-es2015/#ecmascript-2015-features-classes)
|
14 | 41 | - Static fields <!-- What does this mean? -->
|
|
23 | 50 | - Accessing DOM Elements from React Components
|
24 | 51 | - [Thinking in React](https://reactjs.org/docs/thinking-in-react.html)
|
25 | 52 | - [Handling Errors](https://reactjs.org/docs/error-boundaries.html)
|
| 53 | +Imperative vs Declarative |
| 54 | +Composition |
| 55 | +Unidirectional Dataflow |
| 56 | +JSX |
| 57 | +Virtual DOM |
| 58 | +ES6 Classes |
| 59 | +state |
| 60 | +props |
| 61 | +children |
| 62 | +prop-types package |
| 63 | +createElement |
| 64 | +functional setState |
| 65 | +Lifecycle Hooks |
| 66 | +Container vs Presentational Components |
| 67 | +Stateless Functional Components |
| 68 | +Sytnthetic Events |
| 69 | +Private Stateless Functional Components |
| 70 | +Introduction to React |
| 71 | + |
| 72 | + React.js
|
| 73 | + What is it?
|
| 74 | + What problem does it solve?
|
| 75 | + Development Eco-System
|
| 76 | + React versus other frameworks |
| 77 | + |
| 78 | +Key React components |
| 79 | + |
| 80 | + Editor and Web Server
|
| 81 | + Browser Development Tools
|
| 82 | + Components |
| 83 | + Virtual DOM |
| 84 | + Dataflow |
| 85 | + JSX |
| 86 | + |
| 87 | +Your First React UI |
| 88 | + |
| 89 | + Understanding the components |
| 90 | + Building a Hello World Component
|
| 91 | + |
| 92 | +JSX
|
| 93 | + |
| 94 | + What is JSX?
|
| 95 | + Using JSX
|
| 96 | + Using React with JSX
|
| 97 | + Using React without JSX
|
| 98 | + Precompiled JSX with Babel
|
| 99 | + |
| 100 | +Working with Components
|
| 101 | + |
| 102 | + Component Life-Cycle
|
| 103 | + Properties and State
|
| 104 | + Virtual DOM
|
| 105 | + Events
|
| 106 | + Compositions
|
| 107 | + Reusable Components
|
| 108 | + |
| 109 | +Forms
|
| 110 | + |
| 111 | + Controlled Components
|
| 112 | + Uncontrolled Components
|
| 113 | + Review of React |
| 114 | + |
| 115 | + What is it? |
| 116 | + Key React concepts and components |
| 117 | + Building a Hello World UI |
| 118 | + |
| 119 | + React and ES2015
|
| 120 | + |
| 121 | + ES2015 features which impact React
|
| 122 | + How to create components with ES2015
|
| 123 | + Using Babel for ES2015 and JSX
|
| 124 | + Using WebPack with React
|
| 125 | + Using Immutable.js
|
| 126 | + |
| 127 | + Advanced React Components
|
| 128 | + |
| 129 | + Component Life-Cycle
|
| 130 | + Virtual DOM
|
| 131 | + Events
|
| 132 | + State Machines
|
| 133 | + Compositions
|
| 134 | + Communication Between Components
|
| 135 | + Reusable Components
|
| 136 | + Cloning Components
|
| 137 | + |
| 138 | + Introduction to Flux
|
| 139 | + |
| 140 | + Key Flux concepts |
| 141 | + Actions |
| 142 | + Dispatchers |
| 143 | + Stores |
| 144 | + Flows |
| 145 | + |
| 146 | + Building your first Flux application |
| 147 | + |
| 148 | + Organizing your in code
and understanding the mental model |
| 149 | + Creating your Hello World |
| 150 | + Incorporating AJAX and Web Sockets
|
| 151 | + |
| 152 | + Working with Dispatchers
|
| 153 | + |
| 154 | + Understand the purpose, and design
|
| 155 | + Callbacks and the Dispatcher |
| 156 | + |
| 157 | + Stores
|
| 158 | + |
| 159 | + Understand the purpose of stores
|
| 160 | + Associating stores with the dispatcher |
| 161 | + |
| 162 | + Components
|
| 163 | + |
| 164 | + How to connect into stores
|
| 165 | + How to connect into actions
|
| 166 | + |
| 167 | + Redux
|
| 168 | + |
| 169 | + Explore differences between Redux and normal Flux
|
| 170 | + Reducer Functions
|
| 171 | + Working with one store
|
| 172 | + Advantages and Disadvantages of Redux
|
| 173 | + |
| 174 | + Working with the DOM
|
| 175 | + |
| 176 | + Referencing DOM Elements
|
| 177 | + DOM Manipulation
|
| 178 | + HTML 5 Drag and Drop
|
| 179 | + |
| 180 | + Node.js and Server DOM Manipulation
|
| 181 | + Unit Testing with TestUtils
|
| 182 | + |
| 183 | + Unit Testing with Mocha, Chai and Sinon
|
| 184 | + How to write React Component Unit Tests with Mocha and Chai
|
| 185 | + How to spy with Sinon
|
| 186 | + Testing Components
|
| 187 | + Testing DOM Manipulations
|
| 188 | + Testing Properties and State
|
| 189 | + Simulating Events
|
26 | 190 |
|
27 | 191 | ### Intermediate
|
28 | 192 | - CSS in JS
|
29 | 193 | - [styled-components](https://www.styled-components.com/)
|
30 | 194 | - [glamorous](https://blog.kentcdodds.com/introducing-glamorous-fb3c9f4ed20e)
|
31 | 195 | - [React's Synthetic Event System](https://reactjs.org/docs/error-boundaries.html)
|
32 |
| -- [React Router](https://reacttraining.com/react-router/core/guides/philosophy) |
| 196 | +- [React Router](https://reacttraining.com/react-router/core/guides/philosophy) |
33 | 197 | - SSR
|
34 | 198 |
|
35 | 199 | ### Advanced
|
36 |
| -- Animations |
| 200 | +- Animations |
37 | 201 | - Redux (An entirely different topic altogether)
|
38 | 202 | - Webpack (This might require a different roadmap altogether)
|
39 | 203 | - [React Under The Hood](https://bogdan-lyashenko.github.io/Under-the-hood-ReactJS/)
|
0 commit comments