> For the complete documentation index, see [llms.txt](https://tkssharma.gitbook.io/react-training/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tkssharma.gitbook.io/react-training/day-02/quick-recap.md).

# Quick Recap

Quick Recap from Day 01

## Now we know what is react and when to use React

* *Simplicity* ReactJS is just simpler to grasp right away. The component-based approach, well-defined lifecycle, and use of just plain JavaScript make React very simple to learn, build a professional web (and mobile applications), and support it. React uses a special syntax called JSX which allows you to mix HTML with JavaScript. This is not a requirement; Developer can still write in plain JavaScript but JSX is much easier to use. and easy to learn !!
* React can be used to create mobile applications (React Native). And React is a diehard fan of reusability, meaning extensive code reusability is supported. So at the same time we can make IOS, Android and Web application.
* *Data Binding*\
  React uses one-way data binding and an application architecture called Flux controls the flow of data to components through one control point – the dispatcher. It's easier to debug self-contained components of large ReactJS apps.
* *Performance*\
  React does not offer any concept of a built-in container for dependency. You can use Browserify, Require JS, EcmaScript 6 modules which we can use via Babel, ReactJS-di to inject dependencies automatically.
* *Testability*\
  ReactJS applications are super easy to test. React views can be treated as functions of the state, so we can manipulate with state we pass to the ReactJS view and take a look at the output and triggered actions, events, functions, etc.

## what is webpack and how its useful for react&#x20;

**Webpack** is a module bundler, but you can also **use** it running tasks as well. **Webpack** relies on a dependency graph underneath. **Webpack** traverses through the source to construct the graph, and it uses this information and configuration to generate bundles.**Webpack** relies on loaders and plugins.

## what is babel and how its being used for react compilation&#x20;

**Babel** or **Babel**.js is a free and open-source JavaScript compiler and configurable transpiler **used** in web development. **Babel** allows software developers to write source code in a preferred programming language or markup language and have **it** translated by **Babel** into JavaScript, a language understood by modern web browsers.

Whats has been covered till Now&#x20;

* **JS frameworks like React Angular 2.0** &#x20;
* **Quick comparison between All frameworks**
* **Environment Setup using webpack or with create-react-app**
* **Project Setup using webpack**&#x20;
* **A Taste of JSX  and babel repl**
* **A Taste of Node & NPM  + NPM Scripts**&#x20;
* **Startup with  Webpack loader  with Babel**
* **A Taste of ES6**&#x20;
* **NPM Script and Package.json**&#x20;
* **React JS Principles**&#x20;
* **Create react App in Depth**&#x20;
* **React Tools and development plugins**
