- The problem
- What is the React
- Three pillars of React
- React - advantages and disadvantages
- Why to learn React nowadays
Talk: https://youtu.be/fQ_UNyQBiqg
Presentation - https://drag13.io/react-learning-course-short/react-intro
Not specified
- Starting new React project from scratch using create-react-app
- Project structure
- Files you need to know
- Predefined commands
- Code examples
- Alternatives
Talk: https://youtu.be/2r1TW9yPhlQ
Presentation - https://drag13.io/react-learning-course-short/react-cra
- Create new repository at GitHub and name it react-for-beginners-itera
- Select .gitignore from VisualStudio
- Clone repo locally using git clone
- Initialize new react application using npx create-react-app my-page --template typescript
- Create a new JSON with next information:
- First Name
- Short biography
- Public contacts
- Use React to display data from the JSON on the page
- Commit and push the results with git add ., git commit -m "Initial commit", git push
- How to create a new React app from scratch
- Project structure
- Code examples
Talk: https://youtu.be/J_826v3GuCE
Not specified
- What is the component
- Why to use the components
- Component types
- How to pass data into the component
- How to get data from the component
- Component lifecycle
Talk: https://youtu.be/BPIeZqomYQw
Presentation - https://drag13.io/react-learning-course-short/react-components
- Split your APP into the logical components
- Mix Class Based and Functional approach to get more practice in both
- Use props only to pass the data to your components
Talk: https://youtu.be/1gLLa4fJ1JQ
Not specified
- What is a hook
- Hook rules
- UseState
- Use Effect
- UseContext
- Custom hooks
Talk: https://youtu.be/6AHDZGumKZg
Presentation - https://drag13.io/react-learning-course-short/react-hooks
Not specified
- What is component - quick recap
- Building "dumb" components - functional and class-based
- Building "smart" component - functional and class-based
- What and when to use
- Components - best practices
Presentation - https://drag13.io/react-learning-course-short/react-new-component
- Create new project using example
- Add footer to your application
- Split the application you've built previously into components
- Create a component named
<AppLink>
which will rendera
. Component should: - Be typed
- Accept custom text
- Accept custom url
- Accept callback that should be invoked before the click
- Put the new component into the footer
- When clicked, it should log into the console next text:
redirecting user to the next {link}
where{link}
should be a's href
- Default way
- Using CSS modules
- Preprocessors
- CSS in JS
Talk: https://www.youtube.com/watch?v=8al4xMhWWCE
Presentation - https://drag13.io/react-learning-course-short/react-styling
- Use CSS modules to style previously created application
- Problems with setState and useState
- Context
- Redux
- MobX
Talk: https://youtu.be/2KTqbf31cLw
Presentation - https://drag13.io/react-learning-course-short/react-state-management
- Copy the code to your project
- Install MobX - npm i mobx mobx-react-lite
- Using context write the timer that will have two buttons
- start and stop
- Timer should:
- Be stopped by default
- On start, App should display time in format HH:MM:SS
- On start page title should be changed to "Timer is running"
- On stop timer should be stopped, the latest value should be present
- Page title should be returned back to normal
- Install MobX
- Implement same functionality with MobX
- React Forms - default way
- Building your first form with React Hook Form
- Validation with Yup
Talk: https://youtu.be/gwrMDwYLIWs
Presentation - https://drag13.io/react-learning-course-short/react-forms
- Install React Hook Form before the workshop
Not specified
- A cup of theory
- Install react router
- Basic setup
- Data Binding
- Router guard
Talk: https://youtu.be/D0Fkm63FoSY
Presentation - https://drag13.io/react-learning-course-short/react-router
- Add header for your application
- Create new page named
about
- Move all content related yourself to the page about
- Add new query parameter named
ln
to your link like this:https://8080?ln=ua
- If
ln
equalsua
all texts should be in Ukrainian language - If
ln
equalsen
all text should be in English (feel free to use google translate if needed)
- Fetch
- Axios
- Network and store
- Typical mistakes
Talk: https://youtu.be/Tm6l612v2v0
Presentation - https://drag13.io/react-learning-course-short/react-network
Not specified
- Purpose
- Cons
- How to choose
- Material UI
Talk: https://youtu.be/4Dsgzk-GuX8
Presentation - https://drag13.io/react-learning-course-short/react-ui-lib
Not specified
- Why test
- Testing pyramid
- What should be tested
- Testing with Jest
Talk: https://youtu.be/ASI73nQ9zP8
Presentation - https://drag13.io/react-learning-course-short/react-testing
Not specified
- Primitives
- Functions
- CustomTypes
- Generics
- TypeAssertions
Talk: https://youtu.be/ND-XaEQ4VSk
Presentation - https://drag13.io/react-learning-course-short/typescript-intro
Not specified
- EsLint
- Prettier
- Husky and Lint Staged
- Emmet
- Code Snippets
Presentation - https://drag13.io/react-learning-course-short/web-tools
Not specified
- Single Responsibility Principle
- Open Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency inversion Principle
Talk: https://youtube.com/live/1D80PMHEBa0
Presentation - https://drag13.io/react-learning-course-short/solid
Not specified