Зашто debounce, а не throttle за претрагу?
Frontend
Napišite funkciju getUserProfile koja uzima userId kao argument i preuzima profil korisnika sa API endpointa "[link]". Funkcija treba da zabeleži profil korisnika ako je fetch uspešan, i da zabeleži poruku o grešci ako fetch ne uspe.
Шта је затварање?
Šta je Set? Šta možemo proslediti kao argument kada pozivamo new Set?
Koje statičke metode Promise poznaješ? Pričaj mi o njima.
const S = { id: 1, name: "Ivan", age: "39", tel: [phone] }; function getParam(obj, key) { return obj[key]; } getParam(S, "tel"); getParam(S, "job");
import React, { useState, useEffect, useLayoutEffect } from 'react'; export default () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("svaki render 1")); console.log("svaki render 2"); useEffect(() => console.log("svaki render 3")); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Povećaj </button> ); } // montiranje -> svaki render 2, svaki render 1, svaki render 3 // ažuriranje -> svaki render 2, svaki render 1, svaki render 3 // odmontiranje 4
Napiši šta će se desiti pri prvom renderovanju — u kojoj će se redoslijedu prikazivati console.log. Šta će biti nakon klika?
Šta je WeakSet?
Napišite apstraktnu implementaciju komponenta Child sa memoizacijom putem React.memo. Koji je drugi argument koji prihvata React.memo?
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; const someFunc = (arr) => { return [...arr].sort((a, b) => a - b); }; const LazyInit = (props) => { const [arr, setArr] = useState(() => someFunc(props.arr)); const onClick = () => { setArr((prev) => prev.concat(prev.length + 1)); }; return ( <> <button onClick={onClick}> Increment </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ); }; export default () => <LazyInit arr={[1, 2, 3]} />; --- Дискуссия справа касается: - Использование TypeScript с обобщениями: "<T extends object, K extends keyof T>" - Проверки, является ли данные строкой, с помощью охранника типа: "isString(data: unknown): data is string { ... }" - Использование useState с функцией, чтобы избежать повторного выполнения при каждом рендере: ``` const [state, setState] = useState(getComplexData); // или const [state, setState] = useState(() => getComplexData()); ``` - Функция, передаваемая в useState, выполнится только один раз при монтировании компонента. - Предупреждение о прямом изменении состояния в строке 11 с prev.concat. --- Техническое задание — проанализировать и, возможно, исправить или оптимизировать код компонента React, особенно: - Правильная ленивое инициализация состояния с помощью useState. - Избегать прямого мутации состояния. - Понимание обобщений TypeScript и охранников типа. - Обеспечить правильное обновление состояния компонента при клике на кнопку.
Koja je razlika između Map i WeakMap?
Postoje tri izvora podataka koji vraćaju iste informacije. Kako dobiti odgovor od najbržeg?
Ispričaj mi o hook-u useState u React-u.
Zašto se sa streličnim funkcijama ne može raditi sa konstruktorom new?
Kako se kreiraju funkcije u JavaScriptu? Koji su načini za kreiranje funkcija i kako se razlikuju?
Koje utilitarne tipove TypeScript koristiš u svom radu? Pričaj o Record, Pick, Omit, Partial, Required, Parameters, Exclude, Extract.