React
Hooks: useState()
Agenda
- Generelt
- Generelt hooks
- Hooks regler
-
useState()
- useState() vs setState()
- useState() with Array and Objects
- Custom hooks (tid?)
Generelt
- Konferanser
-
- Javazone
- NDC
- React Norway
- Arbeidskrav
- Individuell
- 2 ukers
- git
- Wiseflow
- Neste uke! mandag/torsdag(?)


Hooks
Hooks
- v16.8
- Tillater å bruke state og andre livssyklus funksjoner
- innenfor en funksjon basert komponent
- Tilleggs funksjonalitet til funksjon baserte komponenter
- Mindre, lettere og mer fleksibel kode

Hooks
- Basic Hooks
- useState
- useEffect
- useContext
- Additional Hooks
- useReducer
- useCallback
- useMemo
- useRef
- useImperativeHandle
- useLayoutEffect
- useDebugValue
- useDeferredValue
- useTransition
- useId
- Library Hooks
- useSyncExternalStore
- useInsertionEffect

Hooks regler
- Alltid kall på hooks på topp nivå
- Ikke kall på hooks inni:
- Conditions
- Loops/løkker
- Nestede funksjoner
- Kun kall på hooks innenfor React Funksjoner (Komponenter)
- Må importeres fra "React"
- Register
Hooks: useState()
useState()
- State = Tilstand
- Har en innebygd funksjon som trigger "
render()" funksjonen- For å oppdatere DOM
-
state→ Nåværende tilstand (state) -
setState→ Er en funksjon som endrer verdien på tilstanden
const [state, setState] = useState(initialState);const [name, setName] = useState("Kari Nordmann");useState()
class Person extends React.Component {
constructor(props) {
super(props);
this.state = {name: "Kari Nordmann"};
}
render() {
return (
<div>
<h1>Hello, {this.state.name}</h1>
</div>
);
}
}import { useState } from "react";
function Person() {
const [name, setName] = useState("Kari Nordmann");
return (
<div>
<h1>Hello, {name}</h1>
</div>
);
}useState()
class Person extends React.Component {
constructor(props) {
super(props);
this.state = {
name: "Kari Nordmann",
year: 1964
};
this.changeName = this.changeName.bind(this);
}
changeName = () => {
this.setState({name: "Ola Nordmann"});
}
render() {
return (
<div>
<h1>Hello, {this.state.name}</h1>
<p>born in {this.state.year}</p>
<button
type="button"
onClick={this.changeName}
>Change color</button>
</div>
);
}
}import { useState } from "react";
function Person() {
const [name, setName] = useState("Kari Nordmann");
const [year, setYear] = useState(1964);
return (
<>
<h1>Hello, {name}!</h1>
<p>Born in {age}<p/>
<button
type="button"
onClick={() => setName("Ola Nordmann")}
>Change name</button>
</>
)
}ALDRI OPPDATER STATE DIREKTE!!!
Demo
- Basic useState()
- Array
- Object
Custom hooks
Custom hooks
- Gjenbrukbarhet
- i forhold til → logikk
- Custom Hooks starter med "
use".- For eksempel:
useFetch
- For eksempel:
import React from 'react';
export const useCounter = () => {
const [counter, setCounter] = React.useState(0);
const increment = () => setCounter(counter + 1);
const decrement = () => setCounter(counter - 1);
return { counter, increment, decrement };
}Spørsmål?
Hooks: useEffect()- Hooks: useEffect() !!!
- useEffect() background
- useEffect() vs componentdidmount() etc
- useEffect()
- Custom hooks (???)
Neste gang
3. Hooks: useState()
By dawood11
3. Hooks: useState()
3. Hooks: useState()
- 98