The topics here are the titles of the lessons covered for React Course Group-02.
-
Day 01-03 Level-1 (React Introduction)
-
Day 04-07 Level-2 (Building Web Applications with React and Redux)
-
Day 08-09 Level-3 (Advanced React)
Create a Project
To create a new React project, run the following command:
npx create-react-app [... project name ...]
Run the Project
To run the project, use the following command:
npm start
Stop the Project
To stop the project, press CTRL + C
in the terminal.
Terminal Commands
- Open a Folder:
cd [... name / path ...]
- Open the Parent Folder:
cd ..
- List Folders:
ls
- Clear the Terminal:
- Windows:
cls
- Linux/MacOS:
clear
- npx create-react-app [projectName] or .
- Folder Structure
- Component
- Summary
- Components
- JSX Field - JS Code Field - Class Field
- Using CSS (inline Style, external Style, Style File)
- Props
- PropTypes - PropTypes->shape
- Default Props
- State
- Events
- Bind
- React Developer Tools
Note: https://www.wappalyzer.com/ for web site technology analyzer
- Class vs Functional Component
- STATE - useState
- Import Logic
- Phone Book with Class Component
npx create-react-app phonebook
- Summary
- APP.1 - Phone Book with Class Component
- APP.2 - Phone Book with Functional Component
- Create Project
- Remove File/Code
- Create Component Folder/Files (Contact-Form-List)
- Import Components on DOM Node
- Coding/Import Style /main.css
- Coding Contact,List,Form Component
- Script fileds & Build Application
- Life Cycle
- React Life Cycle Methods
https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
- Life Cycle in Functional Component
- Hooks - useState, useEffect, useRef
- Exam
- Summary
- Fetch
Fake Data API: https://jsonplaceholder.typicode.com/
- Axios
npm i axios
- Routes
npm i react-router-dom
[BrowserRouter , Link (to), Routes, Route (path,index, no match *,any text *, params :), Nested Route, NavLink ]
- Slide : DOM & Events
- APP.3 - Keyboard-events-app
- Higher Order Component (HOC)
- Summary
- HOC
- Reausable HOC
- Pure Component
- Context API (context-sample project)
- Promise Slide & Coding
- Slide : Redux (redux-sample project) - Modern Redux
Store - dispatch(action) - action=>{type:'...',payload:'...'} Reducer (Store_Brain-State_Management-State_Object) - subscribe
- Redux Flow Chart : reduxjs/redux#653
- Introduction to Redux
npm install redux
- Counter with Redux Core
- redux devtools extension
- Modern Redux - Redux Toolkit
SRC::: https://redux.js.org/tutorials/essentials/part-2-app-structure
npx create-react-app [my-app] --template redux
-
Summary
-
Install Redux Toolkit
-
Using Modern Redux
- 13.1. https://medium.com/@fdikmen/redux-toolkit-ile-modern-redux-kullan%C4%B1m%C4%B1-5b59f8055da6
- 13.2. https://medium.com/@fdikmen/reduxta-action-creators-ve-action-types-24c28c651547
- 13.3. https://medium.com/@fdikmen/redux-toolkit-ile-asenkron-i%CC%87%C5%9Flemleri-y%C3%B6netme-redux-thunk-41dde4ba4c07
createSlice (userSlice.js) create/configure Store (App/store.js) Provide Store for all Components (index.js) useDispatch / useSelector (Component=> User.js)
-
Thunk Middleware
-
Using Redux Tookit Template
-
Second parameter (thunkAPI) in createAsyncThunk
-
Final Project for React Traning - MovieApp
-
Summary
-
Slide : Building Web Applications with React and Redux
-
MovieApp (Project Continue)
- Create React app With Redux Template
npx create-react-app movie-app --template redux
- Install Semantic UI
npm install semantic-ui-react semantic-ui-css
- import Semantic UI CSS in index.js ``` import 'semantic-ui-css/semantic.min.css' ```
-
Project Folder Structure
https://medium.com/@fdikmen/a-redux-toolkit-project-structure-guide-58093baa88a5 -
Using Template from SemanticUI
-
Create components (MovieAdd & MovieList)
-
Configure Menu (React Router DOM)
npm i react-router-dom
- Using BrowserRouter (index.js) - Using Link (HeaderSection.js) - Using Routes/Route (RootRouter.js) - Import RootRouter in HomePage.js
- Using Message Component From SemanticUI for Home/404 JSX Code (RootRouter.js)
- Using RTK - Create Slice File (movieSlice.js) with rxslice
- import reducer to Store (store.js)
- Using mockApi.io
- Create base Axios Instance (/API/axiosConfig.js)
- Coding FetchMovie method in Slice (MovieSlice.js)
- Using FetchMovie in Slice ExtraReducer (MovieSlice.js)
- Get data from Store in MovieList.js
- Create CardComponent
- Coding CreateMovie method in Slice (MovieSlice.js)
- Using CreateMovie in Slice ExtraReducer (MovieSlice.js)
- Summary
- Source Book (Handbook)
- Table of Content
- Introduction to React Native
- Introduction to TypeScript
- tsrnf || tsrnc || rnf || rnc
- View, Text, SafeAreaView, Props, State, LifeCycle Methods, Events - TwoDataBind
- Alert.alert, Alert.prompt, Button, TouchableOpacity, TouchableHightlight, ScrollView, FlatList
- style- stylesheets, ActivityIndicator,Dimensions, Platform
- ActivityIndicator - ReactNative-Navigator
- JSPromise
- Lazy (npx create-react-app lazy-suspense-sample)
- Suspense
- React Fragment=> <> ... </>
- i18n l10n Note: https://www.merixstudio.com/blog/internationalization-i18n-localization-l10n-react-apps/?utm\_source=facebook&utm\_medium=social&utm_campaign=posting
npm i react-intl
- Isomorphic
- NextJS
- node -v || node --version
npx create-next-app
- npm run dev
- Final-Project
- NextJS snippets
- npx create-next-app lesson-sample
- cd xxxPath-Urlxxx && npm run dev
- Routes
- static route => Folder/page.js
- dynamic route => [Folder]/page.js
- using params => props.params.XXParameterNameXX
- Catch All Routes => [...Folder]/page.js
- Multiple Routes static+dynamic
- Optional catch-all Routes => [[...Folder]]/page.js
- Route Group => (GroupName)/Folder
- Link
- src
- prefetch
- replace
- app-Folder
- jsx, js, tsx
- layout.js => children,...res
- page.js
- loading.js
- error.js
- notFound() => not-found.js
- pages/404.js | pages/500.js
- Search Params => props.searchParams => Query Params Params => props.params => STD Params
- Data Fetch (fetch/axios)
- fetch => next: {revalidate: 1000}
- Promise.All
- "use client" --- "use server"
- Images
- FakeData: https://picsum.photos/200/300
- placeholder - blurDataURL
- quality
- fill
- src - height - width - alt
- Fonts
- Script
- Tailwind CSS
- FlowBite
- Final-Project npx create-next-app finalproject
- cd xxxPath-Urlxxx && npm run dev
- head.js
- styles
- reset.css (https://meyerweb.com/eric/tools/css/reset/)
- global.css
- React Icons [npm i react-icons]
- components/header/index.js && components/header/styles.modules.css
- components/footer/index.js && components/footer/styles.modules.css (https://symbl.cc/en/)
- .env
- services/movie.js
- Loading
Live Share Link;
https://prod.liveshare.vsengsaas.visualstudio.com/join?AEE0B2CCAD60DC7E5CE9F778D236A52729CA