Frontend
պատմիր ինձ React-ի useState hook-ի մասին։
Նկարագրեք իրավիճակը՝ հենց լիցենզիայի առաջ դուք գտնում եք բագ, որի պատճառով ֆունկցիան սխալ է աշխատում: Լիցենզիան հետաձգել հնարավոր չէ, բայց դուք հասկանում եք, որ ինչ-որ բան սխալ է աշխատում: Ի՞նչ করবেন այդպիսի իրավիճակում։
Ի՞նչ խնդիր է առաջանում, երբ օգտագործում եք async/await ուղղակիորեն useEffect-ում։
Որ ֆորմայի վալիդատորների հետ եք աշխատել?
Ի՞նչն էր քեզ ամենաշատը դուր գալիս ներկայիս աշխատանքում։
Ինչ է տարբերությունը TypeScript-ում unknown և any տիպերի միջև։
Ի՞նչ է JavaScript-ում խստիվ և ոչ խստիվ համեմատությունը։
Ի՞նչ է փակումը: Կարող եք բացատրել?
Ի՞նչ է Event Loop-ը։
Ի՞նչ կյանքային ցիկլի մեթոդներ կան React-ում և ինչպես նրանց էմուլացնել useEffect-ով։
Օնլայն կոդավորման առաջադրանք՝ գրել composable useLocalStorage, որը կծառայի որպես միջնորդական շերտ ծրագրավորող և localStorage-ի միջև՝ արժեքներ գրանցել, վերագրել և հետևել այդ արժեքի փոփոխություններին։
Ի՞նչ սցենարներ են ընդգրկվել E2E թեստերով։
Կենդանի կոդավորում: Իրականացրեք EventEmitter-ի հիմնական մեխանիզմը՝ հետագա գրանցման, հրապարակման և գրանցումից դուրս գալու մեխանիզմներով
Ի՞նչ git-ալիասներ ես օգտագործում և ինչու՞ համար։
Ի՞նչ հավաքող է օգտագործվում նախագծում: Աշխատե՞լ եք Webpack-ով։
Ի՞նչ օգտակար տեսակներ եք օգտագործել TypeScript-ից և ինչ դեպքերում:
Ինչու եք ընտրել IndexedDB-ը տեղական պահեստավորման համար տվյալների բազաներում, այլ ոչ թե ինչ-որ այլ բան? Ինչպիսի այլընտրանքներ կան?
#React գրանցման ձևանմուշ 1. բացատրեք, թե ինչպես է աշխատում StateProvider-ը, կիսվեք ձեր մտքերով հարցազրուցակցի հետ: 2. նայեք /src/api/mock-ին, բացատրեք, թե ինչպես է այն աշխատում: 3. ստուգեք SubmitButton-ի գույնը և ուղղեք այն: 4. իրականացնել հաճախորդի ձևի վավերացում Signup կոմպոնենտում: (\*) հիշեք առաջադրանքի թիվ 9-ը: Կանոններ: - Օգտանուն, Էլ.փոստ, Գաղտնաբառ և կրկնվող Գաղտնաբառ դաշտերը պետք է ունենան առնվազն 6 նիշ; - Գաղտնաբառը պետք է համապատասխանի կրկնվող Գաղտնաբառին; - Վավերացումը պետք է կատարվի "SignUp" կոճակին սեղմելուց հետո; - Անվավեր արժեքներով դաշտերը պետք է նշվեն (props error և helperText): 6. API-ի պատասխանն կարող է ունենալ սխալ, որը պետք է ցուցադրվի օգտվողին համապատասխան դաշտի մոտ: 7. համոզվեք, որ 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( `Օգտանուն "${userName}" արդեն վերցված է: Խնդրում ենք փորձել ուրիշը:` ) ); } }, 500); }); }, }; export default api; ```
/** * Առաջադրանք 3: Վերլուծեք ստորև ներկայացված ֆունկցիան և ուղղեք ցանկացած սխալ։ բացատրեք `never` տիպի դերը TypeScript-ում: */ function throwError(): never { throw new Error('Սխալ տեղի ունեցավ'); } /** * Առաջադրանք 4: Փոխակերպեք տրված `MaybeProps` տիպը՝ դարձնելով նրա բոլոր հատկությունները պարտադիր: */ type MaybeProps = { a?: number; b?: string; }; /** * Առաջադրանք 5: Ստեղծեք ընդհանուր `Container` տիպ, որը պարունակում է միայն `value` հատկությունը: * `value`-ի տիպը պետք է սահմանափակվի `string` կամ `number`-ով: */ type Container<T> = { value: T; };
Ի՞նչ տարբերություն կա interface և type-ի միջև TypeScript-ում, որն եք օգտագործում և ինչու?