Μετάβαση από jQuery σε Vue

jQuery to Vue migration, from spaghetti scripts to tested Vue 3 components

Η μετάβαση από jQuery σε Vue 3 ξεκινά από τις εξαρτήσεις: ποιο event ενεργοποιεί ένα plugin, ποιο callback αλλάζει το DOM και ποια global μεταβλητή χρειάζεται η επόμενη λειτουργία. Καταγράφω αυτή την αλυσίδα και μεταφέρω όσα κομμάτια μπορούν να απομονωθούν χωρίς να αλλάξει όλη η σελίδα.

Ξεκινώ από τον κώδικα που ήδη τρέχει. Ελέγχω selectors, event handlers, callbacks των plugins και κοινά objects. Καταγράφω ποια λειτουργία μπορεί να μεταφερθεί μόνη της και ποια εξαρτάται από HTML που παράγει ο server ή από άλλο plugin.

Στο jQuery, λειτουργίες που φαίνονται άσχετες μπορεί να συνδέονται μέσω του DOM. Καταγράφω τη σημερινή συμπεριφορά και προσθέτω tests πριν την αλλάξω, ώστε να ελέγξω ότι το νέο component κάνει την ίδια δουλειά.

Προσθέτω τη νέα αρχιτεκτονική μία λειτουργία τη φορά. Ό,τι δεν έχει μεταφερθεί παραμένει ως έχει. Το backend αλλάζει μόνο αν το απαιτεί η συγκεκριμένη λειτουργία.

01
Τεχνικός έλεγχος

Ελέγχω selectors, handlers, plugins και κοινά δεδομένα σε scripts και HTML που παράγει ο server. Η αναφορά εξηγεί ποιες εξαρτήσεις πρέπει να λυθούν πρώτα και δίνει εκτίμηση για τη μετάβαση.

02
Αρχιτεκτονική και σχέδιο

Αποφασίζω τη σειρά της μετάβασης με βάση τις εξαρτήσεις που βρίσκω στον έλεγχο. Αν πολλά plugins αγγίζουν το ίδιο σημείο, μπορεί να χρειαστεί ένας adapter πριν μεταφερθεί η λειτουργία. Ένα απομονωμένο widget μπορεί να μεταφερθεί αμέσως σε component.

03
Σταδιακή μετάβαση

Αντικαθιστώ μία λειτουργία jQuery τη φορά μέσα στις υπάρχουσες σελίδες. Με κάθε βήμα αφαιρώ συγκεκριμένους handlers, selectors ή plugins. Το backend αλλάζει μόνο όταν η νέα λειτουργία χρειάζεται διαφορετικό endpoint ή HTML.

04
Σταθεροποίηση και παράδοση

Προσθέτω tests για τη συμπεριφορά που μεταφέρθηκε, καταγράφω ποια σημεία εξακολουθούν να συνδέονται με jQuery και παραδίδω την τεκμηρίωση στην ομάδα σας. Παρέχω τεχνική εγγύηση για 30 ημέρες μετά τη θέση σε λειτουργία. Η προσφορά αναφέρει ξεχωριστά αν περιλαμβάνεται υποστήριξη μετά την εγγύηση.

Τι παραδίδω με τη μετάβαση

  • Tests για συμπεριφορά που πριν κρυβόταν σε handlers και αλληλεπιδράσεις μεταξύ plugins
  • Components που διαχειρίζονται τα δικά τους δεδομένα, με Vite και δυνατότητα σταδιακής προσθήκης TypeScript
  • Οι σελίδες που δεν έχουν μεταφερθεί παραμένουν στο υπάρχον stack και αλλάζουν σε επόμενο βήμα
  • Τεκμηρίωση για όσα παραμένουν σε jQuery και τεχνική εγγύηση για 30 ημέρες μετά τη θέση σε λειτουργία
jQuery to Vue migration: a jQuery click handler rewritten as a tested Vue component
jQuery to Vue migration: typed props and emits replacing global jQuery selectors
Γίνεται η μετάβαση χωρίς να ξαναγραφτούν όλα μαζί;

Ναι. Η νέα αρχιτεκτονική μπορεί να προστεθεί σε μία σελίδα που παράγεται στον server, χωρίς να μεταφερθεί ταυτόχρονα όλο το jQuery. Αντικαθιστώ μία αλυσίδα εξαρτήσεων κάθε φορά.

Όχι, αλλά ο έλεγχος ξεκινά διαφορετικά. Γράφω tests που αποτυπώνουν τη σημερινή συμπεριφορά μέσα από handlers, plugins και αλλαγές στο DOM. Έτσι ελέγχω αν το νέο component συμπεριφέρεται όπως η υπάρχουσα λειτουργία.

Εξαρτάται από τον αριθμό των οθονών και από το πόσο στενά συνδέονται handlers και plugins μέσω του DOM. Μετά τον τεχνικό έλεγχο στέλνω συγκεκριμένη τιμή και χρονοδιάγραμμα για τις λειτουργίες που συμφωνήσαμε να μεταφερθούν.

Όχι. Η νέα αρχιτεκτονική μπορεί να χρησιμοποιεί τα υπάρχοντα AJAX endpoints του PHP backend. Προτείνω αλλαγή στο backend μόνο όταν τη χρειάζεται η λειτουργία που μεταφέρεται.

Επικοινωνία

Αθήνα, συνεργασία εξ αποστάσεως με ομάδες σε Ευρώπη & ΗΠΑ

info@offline-web.com

Στείλτε μου τις οθόνες και τα plugins που σας δυσκολεύουν
Τιμή και χρονοδιάγραμμα

    Πώς δουλεύει
    1. Πείτε μου για το έργο σας παρακάτω.
    2. Σας στέλνω με email μερικές γρήγορες ερωτήσεις, περίπου 2 λεπτά.
    3. Παίρνετε τιμή, χρονοδιάγραμμα και αντικείμενο έργου με email. Χωρίς κλήση.
    Ένα link με βοηθάει να εκτιμήσω πιο γρήγορα το έργο σας.

    Απαντώ συνήθως μέσα σε μία εργάσιμη, με τιμή, χρονοδιάγραμμα και αντικείμενο έργου.

    Ο ιστότοπος προστατεύεται από reCAPTCHA. Ισχύουν η Πολιτική Απορρήτου και Όροι Χρήσης της Google.