
Η μετάβαση από Vanilla JS σε Vue 3 δεν είναι απαραίτητη μόνο και μόνο επειδή ο κώδικας χρησιμοποιεί getElementById, addEventListener ή innerHTML. Ένα μικρό UI που αλλάζει σπάνια μπορεί να μείνει σε plain JavaScript. Η μετάβαση βοηθά όταν η συμπεριφορά δεν είναι καταγεγραμμένη ή δεν είναι σαφές ποιο script ευθύνεται για κάθε αλλαγή στην οθόνη.
Πρώτα καταγράφω πώς συνεργάζονται τα scripts και ποια δεδομένα ελέγχουν κάθε στοιχείο της οθόνης. Αν ένα κομμάτι είναι μικρό, σταθερό και κατανοητό, το αφήνω σε plain JavaScript.
Όπου χρειάζεται αλλαγή, μεταφέρω μία οθόνη ή ένα widget τη φορά και γράφω tests για τις άγραφες παραδοχές της σημερινής συμπεριφοράς. Τα δεδομένα μένουν τοπικά και περνούν σε κοινό store μόνο όταν τα χρειάζονται περισσότερα σημεία.
Τεχνικός έλεγχος
Καταγράφω τι κάνει κάθε custom script και πού το DOM παύει να αποτυπώνει σωστά τα δεδομένα της εφαρμογής. Ο έλεγχος δείχνει ποια συμπεριφορά χρειάζεται tests και αν η μετάβαση θα λύσει πραγματικό πρόβλημα.
Αρχιτεκτονική και σχέδιο
Χωρίζω τα components με βάση όσα κάνει ο χρήστης στην οθόνη. Τα δεδομένα μένουν τοπικά και περνούν σε κοινό store μόνο αν τα χρειάζονται πραγματικά πολλά σημεία.
Σταδιακή μετάβαση
Μεταφέρω μόνο τις οθόνες ή τα widgets που συντηρούνται πιο εύκολα με τη νέα αρχιτεκτονική. Τα μικρά και σταθερά scripts μένουν ως έχουν.
Σταθεροποίηση και παράδοση
Προσθέτω tests για τη συμπεριφορά που καταγράφηκε, ελέγχω την απόδοση στα σημεία που άλλαξαν και τεκμηριώνω τον κώδικα που παραμένει σε Vanilla JavaScript. Παρέχω τεχνική εγγύηση για 30 ημέρες μετά τη θέση σε λειτουργία. Τυχόν υποστήριξη μετά την εγγύηση συμφωνείται ξεχωριστά στην προσφορά.
Τι αλλάζει όταν χρειάζεται μετάβαση
- Τα scripts που μεταφέρονται δεν αλλάζουν πλέον το DOM με το χέρι. Το component το ενημερώνει με βάση τα δεδομένα του
- Μεταφέρω την επαναλαμβανόμενη λογική κάθε οθόνης ή λειτουργίας στο αντίστοιχο component
- Τα απλά scripts μένουν ως έχουν, ενώ το δύσκολο UI μεταφέρεται σε ξεχωριστά βήματα
- Τεκμηρίωση για τον κώδικα που μένει σε JavaScript και τεχνική εγγύηση για 30 ημέρες μετά τη θέση σε λειτουργία


Χρειάζεται να μεταφερθεί όλο το vanilla JavaScript;
Όχι. Ξεχωρίζω τον κώδικα που αλλάζει συχνά ή έχει άγραφες εξαρτήσεις από τα μικρά scripts που είναι ήδη καθαρά και σταθερά. Προτείνω αλλαγή μόνο όταν η διαχείριση των δεδομένων ή η επαναλαμβανόμενη συμπεριφορά της οθόνης γίνεται πιο απλή.
Ο χειρόγραφος JavaScript κώδικάς μας δεν έχει tests ούτε τεκμηρίωση. Είναι πρόβλημα;
Όχι, αλλά χρειάζεται να καταγραφεί η σημερινή συμπεριφορά πριν αλλάξει. Γράφω tests για κάθε widget ή οθόνη που περνά στη νέα αρχιτεκτονική. Ο κώδικας που μένει σε JavaScript τεκμηριώνεται ξεχωριστά.
Πόσο διαρκεί η μετάβαση;
Εξαρτάται από τις οθόνες που μοιράζονται δεδομένα, τις χειροκίνητες αλλαγές στο DOM και τα scripts που είναι καλύτερο να μείνουν ως έχουν. Μετά τον τεχνικό έλεγχο στέλνω συγκεκριμένη τιμή και χρονοδιάγραμμα μόνο για τα κομμάτια που χρειάζεται να μεταφερθούν.
Έχουμε ένα παλιό PHP backend. Πρέπει να αλλάξει και αυτό;
Όχι. Ένα component μπορεί να συνεχίσει να χρησιμοποιεί τα endpoints της υπάρχουσας εφαρμογής σε PHP. Προτείνω αλλαγή στο backend μόνο αν η συγκεκριμένη οθόνη χρειάζεται δεδομένα ή ενέργειες που δεν παρέχονται σήμερα.
Άλλες υπηρεσίες
Επικοινωνία
Αθήνα, συνεργασία εξ αποστάσεως με ομάδες σε Ευρώπη & ΗΠΑ
info@offline-web.com