Experience with the basic web technologies ie. HTML, CSS & JavaScript will help.
React is an open source javaScript library for building user interfaces by Facebook inc.
-
View in MVC – ReactJS is the view layer in our applications and it does this job really well without trying to achieve anything more.
-
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!
-
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.
-
Component-Based – Build encapsulated components that manage their own state, then compose them to make complex UIs.
-
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.
-
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
-
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.
-
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.
-
Functional Programming – ReactJS stateless components act like pure functions while composition is highly enforced instead of inheritance to reuse code between components.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Best practices with react | JSConf EU | Medium | ReactJS/thinking-in-react | 1 hours |
- Take an application like Instagram and plan on what parts of it are re-usable and make a component.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Trying out React | EggHead | React Armory | ReactJS/installation | 6 hours |
- Make a HTML file with ReactJS as script tag in the head.
- Make a simple km to miles converter in that one file.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Create-React-App boilerplate | EggHead | FacebookIncubator/cra | ReactJS/installation | 2 hours |
- Use
create-react-app
and create a sample React app. - Convert km to miles converter that you built previously into this application that you created now.
- Build the application using
create-react-app
- Install serve by
npm i -g serve
andserve build
to test the appliction that you built.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
JSX | EggHead | ReactEnlightment | ReactJS/jsx | 6 hours |
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Custom components | EggHead | ReactArmory | ReactJS/components | 8 hours |
- Create a modified
h1
tag which has underline and blue colored text. You should be able to use it as<Modh1>Some text</Modh1>
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Rendering component | EggHead | ReactArmory | ReactJS/rendering-elements | 4 hours |
- Create an Time Application which updates automatically and always shows the current time. Time should be in the format
HH:MM:SS AM/PM
.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Rendering component | EggHead | RrobinWieruch | ReactJS/conditional-render | 3 hours |
- Create an application with component
<Greet />
which displays "Good morning/evening/night" based on the time.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
State and Props | EggHead | LucyBain | ReactJS/state | 8 hours |
- Create a BMI calculator application.
- This should internally contain two components, inputs for height and weight.
- Display the result in the BMI component itself.
- We should be able to use it as
<BMICalc />
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Component Lifecycle methods | Frontend Masters | ReactArmory | ReactJS/state-and-lifecycle | 6 hours |
- Build an application which has a search bar. When we enter any Github username in it, show the user's details in a card below.
- The card should make use of all the component lifecycle methods.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Events handler | EggHead | JamesKNelson | ReactJS/handling-events | 10 hours |
- Build a todo application with following requirements
- Input field to add new todos
- Click on todo to toggle completion. Maybe strikethrough if its completed.
- Double click on a todo to delete it.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Controlled forms | EggHead | LorenStewart | ReactJS/forms | 8 hours |
- Build an app which has a sign up form for students.
- Year of passing should be dropdown and should contain only 5 years back from now.
- Take in the date of birth and show his age next to dob input
- Suggest a few interested topics to select from a list of suggestions. These suggestions should appear as a type-ahead.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
UnControlled forms | EggHead | LeftDevel | ReactJS/uncontrolled | 8 hours |
- Built an app that shows a red color rectangle using canvas elements.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Lifting state | Youtube | Gerardnico | ReactJS/lifting-state | 2 hours |
- Create an application with an Image and like button as a child component. Have a count in the parent which has the Image. When we press like button, the count should be incremented.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
composition vs inheritance | ViennaJS | Brew | ReactJS/comp-vs-inher | 1 hours |
- Create an application with a Sidebar component
<Sidebar></Sidebar>
which can take any number of other component/elements to display in the sidebar.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Context | ReactCast | JSPlayground | ReactJS/context | 4 hours |
- In the todo app that you built previously built, change it to use context instead of props.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Dev tools & Experience | Youtube | Facebook/React-DevTools | ReactJS/dev-ex | 1 hours |
- Inspect coderplex website to know what all are components and details of them.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
PropTypes | EggHead | Facebook/PropTypes | ReactJS/prop-types | 1 hours |
- Create an application similar with a component printer taking some text to display as a prop.
- Use propTypes to check whether the prop passed is string or not.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Error Boundaries | EggHead | Bugsnag | ReactJS/error-boundaries | 1 hours |
- Create an application with an
<ErrorWrapper>
component which catches errors in its children components and displays an error message if some error occurs.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
JSX in details | EggHead | PoonyFo | ReactJS/jsx-in | 12 hours |
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
React events | Youtube | Kirupa | ReactJS/Events | 12 hours |
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
React without JSX | EggHead | Brain Mock | ReactJS/no-jsx | 2 hours |
- Create a stopwatch application without any JSX.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
React without es6 | LiveCodin | Medium | ReactJS/no-es6 | 2 hours |
- Recreate the same stopwatch application without writing any ES6 code.
Concept | Best Video Resource | Best Text Resource | Documentation | Duration |
---|---|---|---|---|
Reconcilation | Chariot Solutions | Medium | ReactJS/Reconcilation | 10 hours |