Co dělá operátor in v TypeScriptu?
Frontend
Povězte mi o useCallback — scénář použití, k čemu je potřeba?
Povězte o práci s formuláři v Reactu: řízené a řízené komponenty, výhody a nevýhody každého přístupu.
const LiveSearch = () => { const [inputValue, setInputValue] = useState('') const onInputChange = (e) => { setInputValue(e.target.value) search(e.target.value) } return ( <div> <input value={inputValue} onChange={onInputChange} type="text" /> </div> ) } <span> Vyhledávání: <LiveSearch /> </span>
Úkol: projít strom objektů (každý objekt má pole value a elements) a spočítat součet všech hodnot. Jak bys to realizoval?
Pracoval jste někdy s Blobem? Jak vytvořit odkaz ke stažení dynamicky generovaného souboru?
const X = { a: 1, b: 2, c: 3, d: 4 } function getProperty(obj, key) { // Úkol: typizujte funkci return obj[key] } getProperty(X, 'a') // žádná chyba getProperty(X, ' ') // chyba: klíč není platný klíč pro objekt X getProperty({ jméno: 'Sergey' }, 'jméno') // žádná chyba
Pověz mi o fázích životního cyklu komponent React
// Data o ceně produktu přijatá ze serveru jsou ve tvaru: // 12345678 (cena může být jakéhokoliv čísla v rozmezí od 1 do [phone]) // je nutné napsat funkci, která cenu převede do formátovaného řetězce ve tvaru: // 12'345'678
Co je React.memo? Kdy se používá useCallback?
function sum(a, b) { return a + b; } function memo() {}
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; export default () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("každé vykreslení 1")); console.log("každé vykreslení 2"); useEffect(() => { console.log("každé vykreslení 3"); return () => { console.log(4); }; }, [count]); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Zvýšit </button> ); }
Co je to funkce čištění (cleanup) v useEffect? Kdy se spouští? Napiš ji v useEffect.
const { foo: [bar], bar: [{ baz: foo }] } = { foo: [1], bar: [{ baz: 3 }] } console.log(bar) console.log(foo) //
Pověz mi o Virtual DOM a mechanismu reconciliation v Reactu. Jak React optimalizuje porovnávání stromů?
Jak implementovat průchod stromem bez rekurze? Jaká datová struktura pomůže?
Jak napsat funkci, která vrací Promise, jež se vyřeší za jednu sekundu?
Co se stane, pokud se změní typ komponenty? Pomůže stejný klíč zachovat stav?
const SomeElement = ({ hasData }) => { if (hasData) { return <div> <DataElement /> <SomeImportantElement /> </div> } return <div> <SomeImportantElement /> </div> }
let x = 5; (function () { console.log(x); let x = 0; })()