Frontend
Φανταστείτε μια ουρά μακροεργασιών με πέντε `setTimeout`, και μικροεργασίες που προσθέτουν ασταμάτητα νέες μικροεργασίες, για παράδειγμα μέσω αναδρομικού `Promise.resolve().then()`. Τι θα συμβεί με το interface και θα εκτελεστούν ποτέ αυτά τα πέντε timeout; Γιατί;
#React φόρμα εγγραφής 1. Εξηγήστε πώς λειτουργεί το StateProvider, μοιραστείτε τις σκέψεις σας με τον συνεντευξιαστή. 2. Ρίξτε μια ματιά στο /src/api/mock, εξηγήστε πώς λειτουργεί. 3. Ελέγξτε το χρώμα του SubmitButton και διορθώστε το. 4. Υλοποιήστε την επικύρωση της φόρμας πελάτη στο συστατικό Signup. (\*) Θυμηθείτε την εργασία αριθμός 9. Κανόνες: - Τα πεδία Όνομα χρήστη, Email, Κωδικός και Επανάληψη Κωδικού πρέπει να έχουν τουλάχιστον 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}" είναι ήδη taken. Παρακαλώ δοκιμάστε ένα άλλο.` ) ); } }, 500); }); }, }; export default api; ```
Υπάρχει δυναμική δρομολόγηση: πρέπει να ανοίξετε τη σελίδα του χρήστη, και η ίδια η σελίδα μπορεί να αλλάξει (π.χ., το id στις παραμέτρους ερωτήματος). Πώς μπορούμε να γράψουμε μια μέθοδο για την παρακολούθηση των αλλαγών στη δρομολόγηση για να φορτώσουμε τα αντίστοιχα δεδομένα;
Μπορείτε να εξηγήσετε το Event Loop: με ποια σειρά εκτελούνται ο συγχρονισμένος κώδικας, οι μικροεργασίες και οι μακροεργασίες;
Ποιες μέθοδοι αντιγραφής αντικειμένων μπορούν να αντιγράψουν λειτουργίες από ένα αντικείμενο σε ένα άλλο;
Τι είναι σημαντικό για σένα να δεις σε έναν μελλοντικό εργοδότη, ποια είναι τα κριτήριά σου;
Ποια είναι η διαφορά μεταξύ εικονικού DOM και κανονικού DOM;
Τι είναι τα props και το state στο React; Ποια είναι η διαφορά;
Υπήρξαν καταστάσεις όπου μια εργασία ήταν ήδη ενταγμένη στο develop, αλλά δεν έπρεπε να ενταχθεί στην τρέχουσα έκδοση; Πώς χειριστήκατε σε μια τέτοια κατάσταση;
Ποια βοηθητικά εργαλεία, συμπεριλαμβανομένων εργαλείων για δοκιμές, refactoring και αναθεώρηση κώδικα, χρησιμοποιείτε;
Πώς διαμορφώνεται η διαδικασία μάθησης νέων τεχνολογιών σας;
Κάθε λειτουργία περνάει από έλεγχο κώδικα ή όχι; Πόσες εγκρίσεις απαιτούνταν;
Εργασία: μεταφορά με το ποντίκι Πρέπει να γίνεται δυνατό να πατάτε το κουμπί του ποντικιού πάνω σε ένα χρωματιστό πλαίσιο και να το μετακινείτε όσο το κουμπί είναι πατημένο.
Ποια είναι η διαφορά μεταξύ του τελεστή διπλής ισότητας (==) και του τριπλού (===);
const γεγονότα = [ { όνομα: 'Маша', ημερομηνία: '[phone]' }, { όνομα: 'Даша', ημερομηνία: '[phone]' }, { όνομα: 'Ваня', ημερομηνία: '[phone]' }, { όνομα: 'Петя', ημερομηνία: '[phone]' }, { όνομα: 'Митя', ημερομηνία: '[phone]' }, ];
Ποιο θα ήταν ένα πειστικό επιχείρημα για εσάς στην επιλογή μιας εταιρείας ή έργου;
Ποια λύση στιλιζαρίσματος στο πλαίσιο του MUI μπορεί να χρησιμοποιηθεί αντί για inline στυλ;
Ποια είναι τα προβλήματα στην τρέχουσα προσέγγιση φόρτωσης δεδομένων SSR και πώς θα μεγαλώσουν με την προσθήκη νέων σελίδων;
Εργασία με φόρμες: React Hook Form, επικύρωση μέσω Yup/Zod
Αν σκεφτούμε θεωρητικά: υπάρχουν μεγάλοι πίνακες με μεγάλο όγκο δεδομένων. Μπορεί να προκύψουν προβλήματα απόδοσης; Αν ναι, πώς θα τα λύνατε;