useContext hook
Leggi il valore del context piu vicino.
Uso
useContext legge il valore fornito dal Context.Provider piu vicino.
const value = useContext(Context);Se non esiste un provider sopra il componente, Wompo ritorna il valore predefinito passato a createContext.
Esempio: utente autenticato
Questo esempio condivide l'utente corrente con un componente annidato senza passarlo come prop.
import { createContext, defineWompo, html, useContext, useState } from 'wompo';
const UserContext = createContext(null);
function UserInfo() {
const user = useContext(UserContext);
if (!user) {
return html`<p>L'utente non e' autenticato.</p>`;
}
return html`
<p>
L'utente e' ${user.name} ${user.lastName}.
</p>
`;
}
function App() {
const [user, setUser] = useState(null);
const login = () => setUser({ name: 'Tongi', lastName: 'Patongi' });
const logout = () => setUser(null);
return html`
<${UserContext.Provider} value=${user}>
<button @click=${user ? logout : login}>
${user ? 'Log out' : 'Log in'}
</button>
<${UserInfo} />
</${UserContext.Provider}>
`;
}
defineWompo(App);
defineWompo(UserInfo);Vince il provider piu vicino
Quando piu provider dello stesso context sono annidati, useContext legge quello piu vicino.
function Page() {
return html`
<${ThemeContext.Provider} value="light">
<${ThemeContext.Provider} value="dark">
<${Toolbar} />
</${ThemeContext.Provider}>
</${ThemeContext.Provider}>
`;
}In questo esempio, Toolbar riceve dark.
useCallback - Hooks Wompo
Memorizza una callback e ricreala solo quando cambiano le dipendenze.
useEffect - Hooks Wompo
Usa useEffect per listener, timer, fetch client-side e integrazioni con API browser.