Dites au revoir à jQuery et embrasser Vue.js: créez une application Web plus simple et plus efficace
Vous voulez apprendre Vue.js à partir de zéro? Rejoignez SITEPoint Premium maintenant pour obtenir une collection complète de livres Vue.js couvrant les bases Vue.js, les pratiques de projet, les conseils et plus encore pour seulement 14,99 $ par mois!
De nombreux développeurs comptent toujours sur jQuery lors de la création d'applications simples. Bien que parfois vous n'avez qu'à ajouter une petite quantité d'interactivité à votre page, l'utilisation de frameworks JavaScript semble trop compliquée - volume de code supplémentaire, code de chaudière, outils de construction et packers de modules, etc. Présentation de JQuery de CDN semble être une brise à choisir.
Cet article est destiné à vous convaincre que même pour des projets relativement simples, l'utilisation de Vue.js (ci-après dénommée Vue) ne nécessite aucun effort, mais vous aidera à écrire un meilleur code plus rapidement. Nous prendrons un exemple simple comme exemple pour coder en utilisant JQuery et Vue respectivement, et démontrer progressivement ses différences.
points clés
- Remplacer jQuery par vue.js pour les projets de base n'est pas difficile, et il peut écrire un code mieux plus rapide.
- vue.js permet à l'interface utilisateur d'être clairement séparé de la logique / des données qui les entra?ne, ce qui rend le code plus facile à comprendre et à tester.
- L'interface utilisateur dans Vue.js est déclarative, ce qui signifie que les développeurs doivent uniquement se concentrer sur ce qu'ils veulent voir, sans prêter attention à la fa?on d'opérer le DOM pour le mettre en ?uvre.
- Vue.js et jQuery sont de taille similaire, mais Vue.js offre une expérience de développement plus pratique et un code lisible plus facile.
- vue.js peut créer des composants d'interface utilisateur modulaires et réutilisables qui peuvent être combinés en applications frontales complexes.
ce que nous allons construire
Cet article créera une facture en ligne simple à l'aide du modèle open source fourni par Sparksuite. J'espère que cela est plus innovant qu'une autre liste de taches et est suffisamment complexe pour démontrer les avantages de l'utilisation de Vue tout en étant facile à comprendre.
Nous le rendrons interactifs en fournissant des entrées d'article, un prix unitaire et des entrées de quantité et recalculer automatiquement la colonne "Prix" lorsque l'une des valeurs change. Nous ajouterons également un bouton pour insérer de nouvelles lignes vierges dans la facture, ainsi qu'un champ "total" qui sera automatiquement mis à jour lorsque nous modifions les données.
J'ai modifié le modèle de sorte que le HTML pour une seule ligne (vide) ressemble à ceci:
<tr> class="item"> <td><input type="text" v-model="item.description" /></td> <td><input type="number" v-model="item.price" /></td> <td><input type="number" v-model="item.quantity" /></td> <td><pre class="brush:php;toolbar:false"><code class="javascript">$('table').on('mouseup keyup', 'input[type=number]', calculateTotals);.00
JQUERY Implémentation
Tout d'abord, voyons comment implémenter cette fonction à l'aide de jQuery.
function calculateTotals() { const subtotals = $('.item').map((idx, val) => calculateSubtotal(val)).get(); const total = subtotals.reduce((a, v) => a + Number(v), 0); $('.total td:eq(1)').text(formatAsCurrency(total)); }
Nous attachons l'auditeur au tableau lui-même, et lorsque la valeur "co?t unitaire" ou "quantité" change, la fonction calculée desTotals sera exécutée:
function calculateSubtotal(row) { const $row = $(row); const inputs = $row.find('input'); const subtotal = inputs[1].value * inputs[2].value; $row.find('td:last').text(formatAsCurrency(subtotal)); return subtotal; }
Cette fonction consulte toutes les lignes d'élément dans la table et les traverse, passant chaque ligne à la fonction calculateBtotal, puis en ajoutant les résultats. Ensuite, insérez ce total dans l'emplacement pertinent de la facture.
<tr> class="item"> <td><input type="text" v-model="item.description" /></td> <td><input type="number" v-model="item.price" /></td> <td><input type="number" v-model="item.quantity" /></td> <td><pre class="brush:php;toolbar:false"><code class="javascript">$('table').on('mouseup keyup', 'input[type=number]', calculateTotals);.00
Dans le code ci-dessus, nous obtenons une référence à tous les éléments d'entrée de la ligne et multiplions les deuxième et troisième pour obtenir un sous-total. Ensuite, insérez cette valeur dans la dernière cellule de la ligne.
function calculateTotals() { const subtotals = $('.item').map((idx, val) => calculateSubtotal(val)).get(); const total = subtotals.reduce((a, v) => a + Number(v), 0); $('.total td:eq(1)').text(formatAsCurrency(total)); }
Nous avons également une fonction d'assistance pour nous assurer que le sous-total et le total sont formatés en deux décimales et préfixés avec des symboles de devise.
function calculateSubtotal(row) { const $row = $(row); const inputs = $row.find('input'); const subtotal = inputs[1].value * inputs[2].value; $row.find('td:last').text(formatAsCurrency(subtotal)); return subtotal; }
Enfin, nous avons un gestionnaire de clics pour le bouton "Ajouter la ligne". Ce que nous faisons ici, c'est sélectionner la dernière ligne du projet et créer une copie. L'entrée dans la ligne clonée est définie sur la valeur par défaut et l'inserte comme la nouvelle dernière ligne. Nous pouvons également faciliter les utilisateurs et définir la mise au point sur la première entrée afin qu'ils puissent commencer à taper.
Ce qui suit est la démonstration JQuery complète: Codepen Link
Inconvénients de jQuery
Alors, qu'est-ce qui ne va pas avec ce code? Ou, où pouvons-nous l'améliorer?
Vous avez peut-être entendu parler de certaines bibliothèques plus récentes comme Vue et React prétendant être déclaratives plut?t qu'impératives. Bien s?r, en regardant ce code jQuery, la plupart du code est une liste d'instructions sur la fa?on de faire fonctionner le DOM. Le but de chaque partie du code - ?quoi? - est souvent difficile à distinguer à travers les détails de ?comment le faire?. Bien s?r, nous pouvons clarifier l'intention du code en le décomposant en fonctions bien nommées, mais ce code prend toujours des efforts pour se réinstaller après un certain temps.
Un autre problème avec ce type de code est que nous enregistrons l'état d'application dans le DOM lui-même. Les informations sur le projet de commande n'existent que dans le cadre du HTML qui constitue l'interface utilisateur. Cela ne semble pas être un gros problème lorsque nous affichons des informations dans un seul emplacement, mais une fois que nous commen?ons à afficher les mêmes données à plusieurs emplacements dans l'application, s'assurer que chaque section reste en synchronisation devient de plus en plus complexe. Il n'y a pas de source de fait unique.
Bien que rien ne puisse nous empêcher de ne pas enregistrer l'état en dehors du DOM et d'éviter ces problèmes, des bibliothèques comme Vue fournissent les fonctionnalités et la structure qui facilitent la création d'une bonne architecture et d'écriture de code plus propre, plus modulaire.
Convertir en Vue
Alors, comment utilisons-nous Vue pour reproduire cette fonctionnalité?
Comme je l'ai mentionné plus t?t, Vue ne nous oblige pas à utiliser un packer de module, un traducteur ou de sélectionner un composant de fichier unique (fichier .vue) pour commencer. Comme jQuery, nous pouvons simplement inclure des bibliothèques de CDN. Commen?ons par remplacer les balises de script:
function formatAsCurrency(amount) { return `$${Number(amount).toFixed(2)}`; }
Ensuite, nous devons créer une nouvelle instance Vue:
$('.btn-add-row').on('click', () => { const $lastRow = $('.item:last'); const $newRow = $lastRow.clone(); $newRow.find('input').val(''); $newRow.find('td:last').text('<pre class="brush:php;toolbar:false"><code class="html"><??>.00'); $newRow.insertAfter($lastRow); $newRow.find('input:first').focus(); });
Ici, nous avons juste besoin de fournir l'option EL, qui est un sélecteur (tout comme nous le faisons avec jQuery) pour identifier la partie du document que nous voulons gérer.
Nous pouvons faire en sorte que Vue prenne soin de tout ce qui commence de la page entière (par exemple, pour une seule application de page) ou un seul
Données
Ajoutons également les données pertinentes de trois exemples de lignes à notre instance Vue:
<tr> class="item"> <td><input type="text" v-model="item.description" /></td> <td><input type="number" v-model="item.price" /></td> <td><input type="number" v-model="item.quantity" /></td> <td><pre class="brush:php;toolbar:false"><code class="javascript">$('table').on('mouseup keyup', 'input[type=number]', calculateTotals);.00
L'attribut de données est l'endroit où nous stockons l'état d'application. Cela inclut non seulement toutes les données que nous souhaitons que l'application utilise, mais aussi des informations sur l'état de l'interface utilisateur (par exemple, la partie actuellement active du groupe TAB, ou si l'accordéon est élargie ou effondrée).
Vue nous encourage à séparer l'état de l'application de sa représentation (c'est-à-dire le DOM) et à concentrer en un seul endroit - une seule source de fait.
Modifier le modèle
Définissons maintenant notre modèle pour afficher les éléments de notre objet de données. Puisque nous avons dit à Vue que nous voulions qu'il contr?le le tableau, nous pouvons utiliser sa syntaxe de modèle dans HTML pour dire à Vue comment le rendre et le manipuler.
En utilisant la propriété V-FOR, nous pouvons rendre un morceau de HTML pour chaque élément du tableau des éléments:
function calculateTotals() { const subtotals = $('.item').map((idx, val) => calculateSubtotal(val)).get(); const total = subtotals.reduce((a, v) => a + Number(v), 0); $('.total td:eq(1)').text(formatAsCurrency(total)); }
Vue répétera cette balise pour chaque élément que nous passons au tableau (ou objet) construit par V-FOR, nous permettant de référencer chaque élément dans la boucle - dans cet élément de cas. étant donné que Vue observe toutes les propriétés de l'objet Data, il remettra dynamiquement le balisage à mesure que le contenu des éléments change. Nous devons simplement ajouter ou supprimer des éléments à l'état de l'application et Vue sera responsable de la mise à jour de l'interface utilisateur.
Nous devons également ajouter une bo?te d'entrée afin que l'utilisateur puisse remplir la description de l'élément, le prix unitaire et la quantité:
function calculateSubtotal(row) { const $row = $(row); const inputs = $row.find('input'); const subtotal = inputs[1].value * inputs[2].value; $row.find('td:last').text(formatAsCurrency(subtotal)); return subtotal; }
Ici, nous utilisons la propriété du modèle V pour définir la liaison bidirectionnelle entre l'entrée et les propriétés du modèle de projet. Cela signifie que toute modification de l'entrée mettra à jour les propriétés correspondantes sur le modèle de projet et vice versa.
Dans la dernière cellule, nous utilisons les doublures {{}} pour sortir du texte. Nous pouvons utiliser n'importe quelle expression JavaScript valide à l'intérieur des accolades, nous multiplions donc les deux propriétés du projet et sortions le résultat. De même, puisque Vue observe notre modèle de données, les modifications de l'une ou l'autre propriété entra?neront automatiquement le recalculé de l'expression.
événements et méthodes
Maintenant, nous avons configuré le modèle pour rendre notre collection d'articles, mais comment ajouter de nouvelles lignes? étant donné que Vue rendra quoi que ce soit dans les éléments, pour rendre les lignes vides, nous devons simplement pousser l'objet avec n'importe quelle valeur par défaut que nous voulons dans le tableau des éléments.
Pour créer des fonctions accessibles dans le modèle, nous devons les transmettre à notre instance VUE en tant que propriétés de l'objet méthodes:
function formatAsCurrency(amount) { return `$${Number(amount).toFixed(2)}`; }
Définissons une méthode Addrow que nous pouvons appeler pour ajouter un nouvel élément à notre tableau des articles:
$('.btn-add-row').on('click', () => { const $lastRow = $('.item:last'); const $newRow = $lastRow.clone(); $newRow.find('input').val(''); $newRow.find('td:last').text('<pre class="brush:php;toolbar:false"><code class="html"><??>.00'); $newRow.insertAfter($lastRow); $newRow.find('input:first').focus(); });
Notez que toute méthode que nous créons sera automatiquement liée à l'instance Vue elle-même, afin que nous puissions accéder aux propriétés et à d'autres méthodes dans l'objet de données en tant que propriétés de cela.
Donc, maintenant nous avons une méthode, comment l'appelons-nous lorsque nous cliquez sur le bouton "Ajouter la ligne"? La syntaxe pour ajouter des écouteurs d'événements aux éléments d'un modèle est V-on: Nom d'événement:
const app = new Vue({ el: 'table' });
Vue nous fournit également un raccourci afin que nous puissions utiliser @ au lieu de V-on:, comme je l'ai fait dans le code ci-dessus. Pour les gestionnaires, nous pouvons spécifier n'importe quelle méthode dans l'instance Vue.
Propriétés informatiques
Maintenant, nous avons juste besoin d'afficher le total au bas de la facture. Nous pouvons probablement le faire dans le modèle lui-même: comme je l'ai mentionné plus t?t, Vue nous permet de placer toute instruction JavaScript entre les accolades bouclées. Cependant, il est préférable de garder quoi que ce soit au-delà de la logique très basique en dehors du modèle; si nous séparons la logique, il est plus clair et plus facile à tester.
Nous pouvons utiliser une autre méthode pour cela, mais je pense que les propriétés calculées sont plus appropriées. Semblable à la méthode de création, nous passons un objet calculé contenant des fonctions à notre instance VUE, et nous voulons que le résultat de ces fonctions soit utilisé dans le modèle:
<tr> class="item"> <td><input type="text" v-model="item.description" /></td> <td><input type="number" v-model="item.price" /></td> <td><input type="number" v-model="item.quantity" /></td> <td><pre class="brush:php;toolbar:false"><code class="javascript">$('table').on('mouseup keyup', 'input[type=number]', calculateTotals);.00
Maintenant, nous pouvons référencer cette propriété calculée dans le modèle:
function calculateTotals() { const subtotals = $('.item').map((idx, val) => calculateSubtotal(val)).get(); const total = subtotals.reduce((a, v) => a + Number(v), 0); $('.total td:eq(1)').text(formatAsCurrency(total)); }
Comme vous l'avez peut-être remarqué, les propriétés calculées peuvent être traitées comme des données; Mais il y a un autre avantage à utiliser des propriétés calculées: Vue est suffisamment intelligente pour mettre en cache la valeur de retour et ne recalculera la fonction que si l'une des propriétés de données dépend des modifications.
Si nous utilisons des méthodes pour calculer le total, le calcul sera effectué chaque fois que le modèle est rendu. Parce que nous utilisons des propriétés calculées, le total ne sera recalculé que si la quantité ou le champ de prix de l'article change.
Filtre
Vous avez peut-être remarqué une petite erreur dans notre implémentation. Bien que le co?t unitaire soit un entier, notre total et nos sous-totaux ne sont pas affichés lorsqu'ils sont affichés. Ce que nous voulons vraiment, c'est toujours afficher ces chiffres comme deux décimales.
Plut?t que de modifier le code qui calcule les sous-totaux et calcule les totaux, Vue nous fournit un bon moyen de gérer des taches de mise en forme courantes comme celle-ci: filtres.
Comme vous l'avez peut-être deviné, pour créer un filtre, nous passons simplement un objet avec cette clé à notre instance Vue:
function calculateSubtotal(row) { const $row = $(row); const inputs = $row.find('input'); const subtotal = inputs[1].value * inputs[2].value; $row.find('td:last').text(formatAsCurrency(subtotal)); return subtotal; }
Ici, nous créons un filtre très simple appelé devise qui appelle la valeur.tofixée (2) et renvoie le résultat. Nous pouvons l'appliquer à n'importe quelle sortie du modèle comme suit:
function formatAsCurrency(amount) { return `$${Number(amount).toFixed(2)}`; }
Ce qui suit est la démo Vue complète: Codepen Link
Résumé
Comparez les deux versions du code c?te à c?te, et plusieurs aspects de l'application Vue sont proéminents:
- Effacer la séparation entre l'interface utilisateur et la logique / les données qui les entra?ne: le code est plus facile à comprendre et plus facile à tester.
- L'interface utilisateur est déclarative: il vous suffit de vous soucier de ce que vous voulez voir, sans prêter attention à la fa?on de faire fonctionner le DOM pour le mettre en ?uvre.
Les tailles (en KB) des deux bibliothèques sont presque les mêmes. Bien s?r, vous pouvez rationaliser JQuery avec une version personnalisée, mais même pour des projets relativement simples comme notre exemple de facture, je pense que la facilité de développement et la lisibilité du code justifient cette différence.
Vue peut faire beaucoup de choses que nous n'avons pas introduites ici. Son avantage est qu'il vous permet de créer des composants d'interface utilisateur modulaires et réutilisables qui peuvent être combinés en applications de frontend complexes. Si vous êtes intéressé à conna?tre Vue en profondeur, je vous suggère de consulter la mise en service avec le cadre Vue.js 2.0.
FAQ sur le remplacement de jQuery par Vue
Quelle est la principale différence entre jQuery et Vue.js?
jQuery est une bibliothèque JavaScript rapide, compacte et riche en fonctionnalités. Il facilite la traversée et la manipulation des documents HTML, le traitement des événements et les animations, et son API facile à utiliser peut fonctionner dans une variété de navigateurs. Vue.js, en revanche, est un cadre JavaScript progressif pour la création d'interfaces utilisateur. Contrairement à d'autres cadres globaux, la conception de Vue a une adoptabilité incrémentielle dès le début. La bibliothèque de base se concentre uniquement sur les couches de vue, est facile à démarrer et s'intègre à d'autres bibliothèques ou à des projets existants.
Pourquoi devrais-je envisager de remplacer jQuery par Vue.js?
Bien que JQuery soit un outil fiable depuis de nombreuses années, Vue.js fournit un moyen plus moderne et complet de créer des applications Web. Vue.js est basé sur des composants, ce qui favorise la réutilisabilité et la maintenabilité. Il a également un écosystème plus fort avec des outils tels que la gestion de l'état, le routage, etc. De plus, Vue.js a un DOM virtuel qui peut améliorer les performances dans certains cas.
Comment convertir le code jQuery en Vue.js?
La conversion du code jQuery en Vue.js nécessite une compréhension des méthodes et des propriétés équivalentes Vue.js des fonctions jQuery. Par exemple, vous utiliserez le crochet de cycle de vie monté () de Vue au lieu de $ (document) .ready () de jQuery. De même, vous utiliserez Axios ou Fetch de Vue au lieu de $ .ajax () de jQuery pour les demandes HTTP.
Puis-je utiliser jQuery et Vue.js dans un projet?
Bien que techniquement puisse utiliser JQuery et Vue.js, cela n'est généralement pas recommandé. Le mélange des deux peut conduire à la confusion du code et aux conflits potentiels, car les deux bibliothèques essaient de gérer le DOM selon leurs propres termes. Il est préférable d'utiliser complètement l'un d'eux.
Comment gérer les événements dans Vue.js, par rapport à jQuery?
Dans jQuery, vous joignez généralement un écouteur d'événements à un élément en utilisant des méthodes telles que .click (), .on () ou .bind (). Dans Vue.js, vous utilisez la directive V-on (ou son abréviation @) pour écouter les événements DOM et exécuter un javascript lorsqu'il est déclenché.
Comment fonctionne la liaison des données dans Vue.js par rapport à jQuery?
jQuery n'a pas de liaison de données intégrée. Vous sélectionnez manuellement un élément et mettez à jour son contenu. Au contraire, Vue.js possède un puissant système de liaison des données. Vous pouvez utiliser la directive du modèle V pour créer des liaisons de données bidirectionnelles sur l'entrée de formulaire, TextArea et Select Elements.
Comment animer les éléments de Vue.js, par rapport à jQuery?
jQuery a des méthodes d'animation intégrées, telles que .fadein (), .slideUp (), etc. Vue.js, en revanche, fournit des composants de conversion qui permettent une plus grande flexibilité lors de l'animation des éléments dans et hors du DOM.
Comment faire des demandes HTTP dans Vue.js, par rapport à jQuery?
Dans jQuery, vous utilisez généralement la méthode $ .ajax () pour faire des demandes HTTP. Vue.js n'a pas cette méthode intégrée, mais vous pouvez utiliser des bibliothèques comme les API modernes (comme Fetch) ou Axios pour faire des demandes HTTP.
Comment Vue.js gère-t-il la réactivité par rapport à jQuery?
jQuery n'a pas de système réactif intégré. Lorsque vos données changent, vous mettez à jour manuellement le DOM. Vue.js, en revanche, a un système de données réactif. La vue est automatiquement mise à jour lorsque vous modifiez les données.
Comment remplacer le plugin jQuery par le composant Vue.js?
De nombreux plugins jQuery peuvent être remplacés par des composants Vue.js. Vue.js possède un écosystème riche qui fournit des milliers de composants open source disponibles. Vous pouvez également créer vos propres composants personnalisés. Cela améliore la réutilisabilité et la maintenabilité du code.
Veuillez noter que j'ai réécrit la sortie selon vos exigences et conservé le format et l'emplacement d'origine de toutes les images. Comme je n'ai pas accès à Codepen, je ne peux pas fournir le lien Codepen réel, veuillez créer et remplacer l'espace réservé "[Codepen Link]".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Java et JavaScript sont différents langages de programmation, chacun adapté à différents scénarios d'application. Java est utilisé pour le développement des grandes entreprises et des applications mobiles, tandis que JavaScript est principalement utilisé pour le développement de pages Web.

JavaScriptCommentsaSententialFormantaining, Reading et GuidingCodeEexecution.1) unique-linecomesaUSEUSEFORQUICKEXPLANATIONS.2) Multi-linecommentSExPlainComplexLogicorProvideTailedDocumentation.3) Inlinecomementsclarifypecifications

Les points suivants doivent être notés lors du traitement des dates et du temps dans JavaScript: 1. Il existe de nombreuses fa?ons de créer des objets de date. Il est recommandé d'utiliser les cha?nes de format ISO pour assurer la compatibilité; 2. Get and définir des informations de temps peuvent être obtenues et définir des méthodes, et notez que le mois commence à partir de 0; 3. Les dates de mise en forme manuelle nécessitent des cha?nes et les bibliothèques tierces peuvent également être utilisées; 4. Il est recommandé d'utiliser des bibliothèques qui prennent en charge les fuseaux horaires, comme Luxon. La ma?trise de ces points clés peut éviter efficacement les erreurs courantes.

PlacertagsatthebottomofablogPostorwebPageSerSpracticalPurpossForseo, userexperience, anddesign.1.ithelpswithseobyallowingsechingenginestoaccesskeyword-elevanttagswithoutcluteringtheaincontent..itimproveserexperceenceegmentyepingthefocusonThearrlUl

Javascriptispreferredforwebdevelopment, tandis que javaisbetterforlarge-scalebackenSystemsandandroidApps.1)

JavascripthSsevenfundamentalDatatypes: nombre, cha?ne, booléen, indéfini, nul, objet, andymbol.1) nombres usUseadouble-précisformat, utile

La capture d'événements et la bulle sont deux étapes de la propagation des événements dans DOM. La capture est de la couche supérieure à l'élément cible, et la bulle est de l'élément cible à la couche supérieure. 1. La capture de l'événement est implémentée en définissant le paramètre UseCapture d'AdveventListener sur true; 2. événement Bubble est le comportement par défaut, UseCapture est défini sur False ou Omise; 3. La propagation des événements peut être utilisée pour empêcher la propagation des événements; 4. événement Bubbling prend en charge la délégation d'événements pour améliorer l'efficacité du traitement du contenu dynamique; 5. La capture peut être utilisée pour intercepter les événements à l'avance, telles que la journalisation ou le traitement des erreurs. La compréhension de ces deux phases aide à contr?ler avec précision le calendrier et comment JavaScript répond aux opérations utilisateur.

Java et JavaScript sont différents langages de programmation. 1.Java est un langage typique et compilé, adapté aux applications d'entreprise et aux grands systèmes. 2. JavaScript est un type dynamique et un langage interprété, principalement utilisé pour l'interaction Web et le développement frontal.
