React
Hooks: useContext()
Agenda
- State management
- Local state VS global state
- Hooks: useContext( )
Generelt
- Eksamen
- Hjemme eksamen
- 12 dager
- Dato
- React (12 dager)
- Mandag - 20. november 2023 - 09:00
- Fredag - 01. desember 2023 - 09:00
- Webteknologi (7 dager)
- Fredag - 08. desember 2023 - 09:00
- Fredag - 15. desember 2023 - 15:00
- React (12 dager)

Resten av semesteret
Uke | Tema |
---|---|
42 | React Router DOM |
43 | Redux toolkit |
44 | Hooks: useReducer() + useSelector() (NB! med forbehold) |
45 | Repetisjon |
46 | Lese uke |
47 | Webtek. eksamen utlevering |
48 | Webtek. eksamen innlevering |
49 | Eksamen utlevering |
50 | Eksamen innlevering |

Dekket
Skal dekke
Burde sjekkes ut
Ekstern for react
State management
Lokal state
VS
Global state
Parent
Child
GrandChild
GrandChild
Child
Lokal state
Lokal state
Parent
Child
GrandChild
GrandChild
Child
Global state
Provider
Consumer
Consumer
Consumer
Consumer
Global state
Provider
Consumer
Consumer
Consumer
Consumer
Hooks: useContext()
// Contexts/UserContext.js
import { createContext } from 'react';
export const UserContext = createContext(null);
// App.js
import { UserContext } from './Contexts/UserContext.js';
export const App = () => {
const firstName = 'Ola';
const lastName = 'Nordmann';
const age = 21;
// ...
return (
<UserContext.Provider value={{ firstName, lastName, age }}>
// ...
</UserContext.Provider>
);
}
// Student/Student.jsx
import { UserContext } from '../Contexts/UserContext.js';
import { useContext } from 'react';
export const Student = () => {
const userContext = useContext(UserContext);
// ...
return (
<div>
name: {userContext.firstName} {userContext.lastName}
age: {userContext.age}
</div>
);
}
Hooks: useContext()
TypeScript
// Contexts/UserContext.ts
import { createContext } from 'react';
export interface UserContextType {
firstName: string;
lastName: string;
age: number;
}
export const UserContext = createContext<UserContextType>({} as UserContextType);
Hooks: useContext()
Andre alternativer for initialState
// Contexts/UserContext.ts
import { createContext } from 'react';
export interface UserContextType {
userName: string;
setUserName: React.Dispatch<React.SetStateAction<string>>;
}
export const UserContext = createContext<UserContextType>({} as UserContextType);
// App.js
import { useState } from 'react';
import { UserContext } from './Contexts/UserContext.js';
export const App = () => {
const [userName, setUserName] = useState('My Initial Username');
// ...
return (
<UserContext.Provider value={{ userName, setUserName }}>
// ...
</UserContext.Provider>
);
}
// Student/Student.jsx
import { UserContext } from '../Contexts/UserContext.js';
import { useContext } from 'react';
export const Student = () => {
const userContext = useContext(UserContext);
// ...
return (
<div>
user name: {userContext.userName}
// ...
<button onClick={() => userContext.setUserName('set New Username')}>
Change username
</button>
</div>
);
}
Andre alternativer
- Redux
- Redux toolkit
Relevant stoff
Takk for i dag! :)
Neste gang: React Router DOM
8. Hooks: useContext()
By dawood11
8. Hooks: useContext()
8. Hooks: useContext()
- 54