Ką daro in operatorius TypeScript?
Frontend
papasakokite apie useCallback — naudojimo scenarijus, kam jis reikalingas?
Pasakykite apie darbą su formomis React: kontroliuojami ir nekontroliuojami komponentai, kiekvieno požiūrio privalumai ir trūkumai.
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> Paieška: <LiveSearch /> </span>
Užduotis: pereiti per objektų medį (kiekvienas objektas turi laukus value ir elements) ir suskaičiuoti visų value sumą. Kaip tai įgyvendintum?
Ar kada nors dirbote su Blob? Kaip sukurti nuorodą atsisiųsti dinamiškai sugeneruotą failą?
const X = { a: 1, b: 2, c: 3, d: 4 } function getProperty(obj, key) { // Užduotis: tipizuoti funkciją return obj[key] } getProperty(X, 'a') // be klaidos getProperty(X, ' ') // klaida: raktas nėra galiojantis raktas objektui X getProperty({ vardas: 'Sergey' }, 'vardas') // be klaidos
Papaskink apie React komponentų gyvavimo ciklo etapus
// Serverio gauti duomenys apie prekės kainą yra tokie: // 12345678 (kaina gali būti bet koks skaičius nuo 1 iki [phone]) // reikia parašyti funkciją, kuri konvertuos kainą į formatuotą eilutę: // 12'345'678
Kas yra React.memo? Kada taikomas useCallback?
function sum(a, b) { return a + b; } function memo() {}
let x = 5; (function () { console.log(x); let x = 0; })()
import React, { useState, useEffect, useRef, useContext, useReducer, useMemo } from 'react'; export default () => { const [count, setCount] = useState(0); useLayoutEffect(() => console.log("kiekvienas atvaizdavimas 1")); console.log("kiekvienas atvaizdavimas 2"); useEffect(() => { console.log("kiekvienas atvaizdavimas 3"); return () => { console.log(4); }; }, [count]); return ( <button onClick={() => setCount((prevProps) => ++prevProps)}> Padidinti </button> ); }
Kas yra valymo funkcija (cleanup) useEffect? Kada ji veikia? Parašyk ją useEffect.
Kaip įgyvendinti medžio apėjimą be rekursijos? Kokia duomenų struktūra padės?
const { foo: [bar], bar: [{ baz: foo }] } = { foo: [1], bar: [{ baz: 3 }] } console.log(bar) console.log(foo) //
Papaskink apie Virtual DOM ir reconciliation mechanizmą React. Kaip React optimizuoja medžių palyginimą?
Kaip parašyti funkciją, kuri grąžina Promise, išsprendžiančiąsi po vienos sekundės?
Kas nutinka, jei komponento tipas pasikeičia? Ar tas pats raktas padės išlaikyti būseną?
const SomeElement = ({ hasData }) => { if (hasData) { return <div> <DataElement /> <SomeImportantElement /> </div> } return <div> <SomeImportantElement /> </div> }