Կպատմե՛ք ինձ E2E-տեստավորման մասին Playwright-ով. Ինչպե՞ս էր կառուցված թեստավորման համակարգը, ինչպես էր գործարկվում, ինչպես էին փոխազդեցություններն backend-ի հետ, ինչպես էին ապահովում թեստային տվյալների վերարտադրելիությունը։
Frontend
Գրեք ֆունկցիա՝ հաշվելու համար թվերի զանգվածի միջին արժեքը։
Vue 2 օգտվողին դեր նշանակելու վերանայում ```javascript export default { data() { return { user: { name: 'Ivan' } }; }, methods: { setRole(role) { this.user.role = role; } } } ```
Կան 200 ID-ով զանգված։ Ամեն մեկի համար անհրաժեշտ է կատարել /api/users/:id-ին հարցում։ Գրեք ֆունկցիա, որը կատարում է հարցումները, բայց ոչ ավելի քան N միաժամանակ, և վերադարձնում է արդյունքները մուտքային զանգվածի կարգով։
Nuxt 2 միկսինի վերանայում սարքի հայտնաբերման համար ```javascript export default { data() { return { isMobile: window.innerWidth < 768 } } } ```
Ի՞նչ հետաքրքիր դեպքեր կամ ոչ ստանդարտ իրավիճակներ եք հանդիպել Playwright-ով աշխատելիս:
Ինչպե՞ս կարելի է կեշավորել էջերը/պատասխանները Nuxt հավելվածում բեռը նվազեցնելու համար: Արդյոք աշխատել եք Redis կամ Nitro-կեշավորման հետ?
Ի՞նչ կարող են լինել երկար սպիտակ էկրանին պատճառները SSR (Nuxt) ժամանակ: Ինչպե՞ս ախտորոշել և լուծել մեծ Time to First Byte խնդիրը։
Խոսիր Vue 2-ից Vue 3 անցման մասին: ինչ փոփոխություններ եղան (VueX-ից Pinia, Options API-ից Composition API, Vue.extend-ից defineComponent, new Vue-ից createApp և այլն):
Պատմեք Nuxt-ում էջերի կատարողականության օպտիմալացման մասին՝ ինչի հետ եք բախվել, ինչ խնդիրներ եք լուծել և ինչպես։
async function loadUsers(ids) { const users = [] ids.forEach(async id => { const res = await fetch(`/api/users/${id}`) const user = await res.json() users.push(user) }) return users } Identify the problem with this code and suggest how to fix it.
ֆունկցիա debounce(fn, delay) { let timer return function (...args) { clearTimeout(timer) timer = setTimeout(() => fn(args), delay) } }
Nuxt միկսինի վերանայում 2 - չափի փոփոխության լսող ```javascript export default { data() { return { width: 0 } }, mounted() { window.addEventListener('resize', this.onResize) this.onResize() }, methods: { onResize() { this.width = window.innerWidth } } } ```
Պատմիր Vue 2-ից Vue 3-ին անցնելիս հավաքող մասին: Webpack (Vue CLI) կար, հիմա Vite: կար հետաքրքիր corner-case-ներ, կոնֆիգուրացիայի հակասություններ, կամ ինչ-որ բան, որ պետք է վերաշարադրել։