|
|
|
# REACT NOTES
|
|
|
|
https://www.udemy.com/course/react-the-complete-guide-incl-redux/
|
|
|
|
|
|
|
|
## Basics and working with components
|
|
|
|
|
|
|
|
React is a javascript library for building UI.
|
|
|
|
|
|
|
|
Fundamental building block of React are reusable components.
|
|
|
|
|
|
|
|
React uses a declarative approach. This means that you will define the end states and React will work with the DOM to achieve it.
|
|
|
|
|
|
|
|
### Creating a new React Project
|
|
|
|
|
|
|
|
facebook/create-react-app (https://github.com/facebook/create-react-app)
|
|
|
|
|
|
|
|
This github is a tool for creating a react app
|
|
|
|
|
|
|
|
### Post create
|
|
|
|
|
|
|
|
```
|
|
|
|
npm install # install all dependencies
|
|
|
|
npm start
|
|
|
|
```
|
|
|
|
|
|
|
|
### Project Structure
|
|
|
|
|
|
|
|
Mostly work in the /src folder
|
|
|
|
|
|
|
|
/src/index.js executes when the app starts.
|
|
|
|
|
|
|
|
### JSX
|
|
|
|
|
|
|
|
JSX is a special syntax created by the React team
|
|
|
|
|
|
|
|
Allows you to mix JS with HTML
|
|
|
|
|
|
|
|
Best practice is 1 file per component
|
|
|
|
|
|
|
|
The App.js component is generally the root component of a component tree. Everything is a child of the app component.
|
|
|
|
|
|
|
|
Convention is to start all component filenames with Capital letter
|
|
|
|
|
|
|
|
### Creating a component
|
|
|
|
|
|
|
|
1. Create the file
|
|
|
|
2. Add the function
|
|
|
|
3. Export it
|
|
|
|
4. Import in the App component
|
|
|
|
5. Add the HTML in the App component
|
|
|
|
|
|
|
|
### Component design
|
|
|
|
|
|
|
|
Can only have 1 root div in a component
|
|
|
|
|
|
|
|
#### Styles
|
|
|
|
|
|
|
|
There are no rules for CSS files but best practice is to use the same name and put the css file in the same dir as the js file.
|
|
|
|
|
|
|
|
Import the css file into the component.
|
|
|
|
Note: JSX uses className in place of class
|
|
|
|
|
|
|
|
{} Are used as dynamic placeholders for content.
|
|
|
|
|
|
|
|
#### Props
|
|
|
|
|
|
|
|
Are how to pass data into a component
|
|
|
|
|