Sobes.tech

Frontend

Existujú otázky o projekte, tíme alebo procesoch vývoja?

Middle+
Банк Ренессанс
80

Je `console.log` vo vnútri funkcie vedľajším efektom?

Middle
Data World
80

Povedz mi stručne o sebe, čím sa zaoberáš, odkiaľ si, prečo si tu a všetko, čo považuješ za dôležité.

Middle+
Додо пицца
80

Aký je rozdiel medzi useMemo a useCallback?

Middle
Лантан
80

Povedz mi niečo o sebe a o najzaujímavejšej technickej úlohe, ktorú si riešil, podľa svojho názoru.

Middle+
Альфа-БанкАльфа-Банк
80

Ako ste komunikovali s backendom in drugimi člani ekipe (analitiki, oblikovalci, testeri)?

Senior
АЛМИ Партнер
80

Prosím, povedz mi o promises v JavaScripte: čo sú, na čo slúžia, metódy.

Middle
РСХБ-автоматизация
80

Aké vzory vývoja používate (DRY, SOLID, GRASP, návrhové vzory)?

Middle
ОТП БанкОТП Банк
80

Čo je to pole závislostí v useEffect? Čo sa stane, ak odovzdáte prázdne pole alebo ho vôbec ne odovzdáte?

Middle+
VK Tech
80

Aké HTTP kódy sa používajú pri práci s REST API?

Middle
Ростелеком
80

/* Čo sa zobrazí v konzole */ let value = 2; function showValue() { console.log(value); } function wrapper() { let value = 3; console.log(value); showValue(); } wrapper();

Middle+
М.Видео/эльдорадо
80

Čo ste robili, keď používateľ stratil internetové pripojenie?

Middle
Хьюнет
80

Ako zorganizovať výmenu dát medzi dvoma nesúvisiacimi komponentami?

Middle
КейСофт
80

Ako úzko ste pracovali s Next.js? Aké funkcie používate?

Middle
UserGate
80

Ešte stále pracujete v spoločnosti alebo ste ju už opustili?

Middle
NordClan
80

Ako implementovať vyhľadávanie podľa valueChanges poľa s požiadavkou na backend: ktoré RxJS operátory použiť a prečo?

Middle
СК Согласие
80

Na čo je potrebný správca stavu? Čím sa líši od React Context?

Middle
ОТП БанкОТП Банк
80

Čo je to Temporálna mŕtva zóna (TDZ)? Prečo sa objavuje a ako s tým bojovať?

Middle+
НСПК
80

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}> Zvýšiť </button> <ul> {arr.map((n, index) => <li key={index}>{n}</li>)} </ul> </> ) } export default () => <LazyInit arr={[1, 2, 3]} />; --- Diskusia na pravej strane sa zaoberá: - Používaním TypeScriptu s generikami: "<T extends object, K extends keyof T>" - Kontrolou, či sú údaje reťazec, pomocou typu strážca: "isString(data: unknown): data is string { ... }" - Používaním useState s funkciou, aby sa zabránilo opakovaniu pri každom renderovaní: ``` const [state, setState] = useState(getComplexData); // alebo const [state, setState] = useState(() => getComplexData()); ``` - Funkcia odovzdaná do useState sa vykoná iba raz pri načítaní komponentu. - Upozornenie na priame mutovanie stavu na riadku 11 s prev.concat. --- Technická úloha je analyzovať a prípadne opraviť alebo optimalizovať kód React komponentu, pričom sa zameriava na: - Správnu lazy inicializáciu stavu pomocou useState. - Vyhnúť sa priamej mutácii stavu. - Pochopenie generík TypeScriptu a typových strážcov. - Zabezpečiť, aby komponent správne aktualizoval stav pri kliknutí na tlačidlo.

Middle+
IT OneIT One
80

Povedz mi o svojej najobľúbenejšej funkcii, na ktorú si hrdý

Middle
WB Travel
80
/295