Frontend
Да предположим, че не е възможно да се направи страниране на бекенда и Web Worker не е наличен. Как бихте решили този проблем?
Потребителят натиска бутона за плащане от 100 рубли, POST заявка се изпраща към сървъра, но отговор не идва — таймаут. Как да направим така, че повторното изпращане да не доведе до двойно таксуване? Как се решава тази задача на фронтенда и в архитектурата?
Какво е code splitting и как работи?
С кои валидатори на формуляри сте работили?
Какво интересно и ново научи напоследък в света на фронтенда?
Какъв е вашият ред на действия, когато идва нова непозната задача (нови библиотеки, нови компоненти)?
Задача: реализирайте функцията sumSquares, която сумира квадратите на числата от масив, използвайки персонализирана функция reduce. Може да се променя само функцията sumSquares.
Разкажи за себе си, с какво се занимаваше преди, имаше ли нещо интересно?
Какво е Virtual DOM и как се различава от обикновения DOM?
Каква беше архитектурата преди FSD? Защо избрахте точно FSD, а не други подходи?
Как те влияе ситуацията, ако предложиш как да се направи по-добре, но бизнесът казва, че трябва да се направи както първоначално решено?
Разкажи повече за екипа — от кого се състоеше?
Как работи маршрутизирането в Next.js?
Как беше организирана работата с ARIA и клавиатурната навигация?
#React формуляр за регистрацију 1. Објасните како ради StateProvider, поделите своје мисли са интервјуером. 2. Погледајте /src/api/mock, објасните како ради. 3. Проверите боју SubmitButton и исправите је. 4. Имплементирајте валидацију формулара на страни клијента у компоненту Signup. (\*) Имајте у виду задатак број 9. Правила: - Поља Корисничко име, Емаил, Лозинка и Поново Лозинка треба да имају најмање 6 карактера; - Лозинка треба да одговара Поново Лозинка; - Валидација треба да се изврши након клика на "SignUp" дугме; - Поља са неважећим вредностима треба да буду означена (props error и helperText); 6. Одговор API може имати грешку која треба да се прикаже кориснику у близини одговарајућег поља. 7. Уверите се да компонентa UserName приказује ново корисничко име након успешног слања. 8. Имплементирајте нову компонету SignupSuccess. Она треба да се приказује уместо формулара за регистрацију. 9. Имплементирајте серверску валидацију за одговарајућа поља. --- Код из mock.ts: ```typescript const fakeResponse = (userName) => ({ code: 200, user: { id: 42, userName, }, }); let a = 0; const api = { '/signup': function (userName: string, email: string, password: string) { a++; return new Promise((resolve, reject) => { setTimeout(() => { if (a % 2 === 0) { return resolve(fakeResponse(userName)); } else { return reject( new Error( `Korisničko ime "${userName}" je već zauzeto. Molimo pokušajte s drugim.` ) ); } }, 500); }); }, }; export default api; ```
Задача за живо кодиране: поправете брояч с setInterval в useEffect, който работи неправилно поради проблем с затварянето
setTimeout(() => { console.log("timeOut"); }, 0) console.log(1); new Promise(resolve => { console.log("Promise"); setTimeout(() => { console.log("777"); resolve() }, 0) }).then(() => { console.log("then1"); }) .then(console.log('tratata')) .then(() => console.log("then2"); }) console.log(4); setTimeout(() => { console.log("timeOut2"); }, 0)
Как точно се случва абонирането за сигнала вътре в ефекта или computed? Как Angular следи промяната на сигнала и разбира, че трябва да изпълни отново ефекта?
Работили ли сте с asyncData в Nuxt? За какво се използва?
Правилно ли е да се извика функцията getUsername с обект от тип IUser (собствен интерфейс на потребителя) в TypeScript, ако структурата на полетата съвпада с TUser от библиотеката? Обяснете принципа на структурната типизация.