Table des matières
Quelle est la différence entre la syntaxe de vue3 et vue2
6 Le principe réactif de vue3
Maison interface Web Questions et réponses frontales Quelle est la différence entre la syntaxe de vue3 et vue2

Quelle est la différence entre la syntaxe de vue3 et vue2

Jun 23, 2022 pm 05:17 PM
vue

La différence de syntaxe entre vue3 et vue2 : 1. vue2 utilise webpack pour construire le projet, tandis que vue3 utilise vite pour construire le projet ; 2. vue2 peut utiliser le formulaire pototype pour fonctionner, et le constructeur est introduit, tandis que vue3 Les opérations ont besoin à réaliser sous forme de structures et les fonctions d'usine sont introduites.

Quelle est la différence entre la syntaxe de vue3 et vue2

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Vue3, ordinateur Dell G3.

Quelle est la différence entre la syntaxe de vue3 et vue2

1 et vite

vue2 utilise webpack pour construire le projet

webpack commence par le fichier d'entrée, puis analyse le routage, puis le module. , et enfin Packez-le, puis dites-vous que le serveur est prêt à démarrer

vue3 utilise vite pour construire le projet

Dites-vous d'abord que le serveur est prêt, puis attendez que vous envoyiez une requête HTTP, puis. le fichier d'entrée, code d'importation dynamique (importation dynamique) Le plus grand avantage et la différence du point de partage (séparation du code)

est de permettre à certains fichiers de code du projet d'être enregistrés et mis à jour plus rapidement pour voir l'effet réel plus tard, qui est le soi-disant (mise à jour à chaud)

2 Dans le fichier .main.js

vue2, nous pouvons utiliser le formulaire prototype (prototype) pour fonctionner. Le constructeur

vue3 doit utiliser le formulaire de structure pour fonctionner. La fonction d'usine

vue3 est introduite. Il ne peut y avoir de balise racine dans le composant de l'application

3 La fonction de configuration

La fonction de configuration doit renvoyer

<script>
 export default {
  name: &#39;appName&#39;,
  setup(){
  //变量
   let name = &#39;打工仔&#39;
   let age = 18
   //方法
   function say(){
    console.log(`我只是一个${name},今年${age}岁`)
   }
   //返回一个对象
   return {
    name,
    age,
    say
   }
  }
 }
</script>
Copier après la connexion

Vous constaterez que le nom est dans le $ actuel. {name} n'a pas besoin d'utiliser ceci pour fonctionner, cette fonction sert simplement à obtenir les variables dans une certaine portée, et la fonction de configuration fournit une fonction qui n'est actuellement que dans cette portée

Je me sens très mécontent en ce moment. Cela ne signifie-t-il pas que chaque variable et méthode que je définis doit être renvoyée ? Vue3 nous fournit

l'ajout d'une configuration à la balise de script telle que : , ce qui équivaut à être placé dans configuration pendant la compilation et l'exécution

Remarque : la configuration est antérieure à avantCréer et créer des cycles de vie C'est-à-dire que si vous l'utilisez directement pour obtenir les données dans data, elles seront toujours indéfinies

La leçon de syntaxe de configuration reçoit 2 paramètres. setup(props,context)

Nous savons tous this.$attrs, this.$slots dans vue2, this.$emit est équivalent à attrs, slots, submit in context

Remarque : lorsque nous n'acceptons qu'un seul paramètre, la page affichera un avertissement, mais cela n'affecte pas l'utilisation

4. Instructions et slots

vue2 Vous pouvez utiliser slot directement, mais v-slot doit être utilisé dans vue3

v-for et v-. if a une priorité plus élevée dans vue2 que l'instruction v-for, et il n'est pas recommandé de les utiliser ensemble

v- dans vue3 for et v-if ne traitera que le v-if actuel comme une déclaration de jugement dans v-for. , et n'entreront pas en conflit les uns avec les autres

keyCode est supprimé en tant que modificateur de v-on dans vue3, et bien sûr config.keyCodes n'est pas pris en charge

Supprimez le modificateur v-on.native dans vue3

Supprimez le filtre dans vue3

5.ref et reactive

ref

transformez les données en données réactives, ref les transforme en objet, si nous exploitons directement le code, il ne peut pas être modifié. Vous constaterez que le nom et l'âge actuels sont toujours. modifiez la page via get et set. À ce stade, vous devez utiliser .value, et la référence est toujours Refimpl

<template>
  <div class="home">
    <h1>姓名:{{name}}</h1>
    <h1>年龄:{{age}}</h1>
    <button @click="say">修改</button>
  </div>
</template>
<script>
import {ref} from &#39;vue&#39;
export default {
  name: &#39;Home&#39;,
  setup(){
    let name = ref(&#39;中介&#39;)
    let age = ref(18)
    console.log(name)
    console.log(age)
    //方法
    function say(){
      name=&#39;波妞&#39;
      age=18
    }
    return {
      name,
      age,
      say
    }
  }
}
</script>
Copier après la connexion

Dans ce cas, nous modifions la page. Il n'est pas nécessaire d'afficher {{name.value}} En fait, cela n'a pas besoin d'être comme ça. Dans notre vue3, nous détecterons que votre ref est un objet et vous ajouterons automatiquement .value Si nous définissons l'objet ref nous-mêmes, l'instance deviendra refimpl. cette fois, utilisez XX.value.XX pour le modifier

<template>
  <div class="home">
    <h1>姓名:{{name}}</h1>
    <h1>年龄:{{age}}</h1>
    <h2>职业:{{job.occupation}}</h2>
    <h2>薪资:{{job.salary}}</h2>
    <button @click="say">修改</button>
  </div>
</template>
<script>
import {ref} from &#39;vue&#39;
export default {
  name: &#39;Home&#39;,
  setup(){
    let name = ref(&#39;中介&#39;)
    let age = ref(18)
    let job=ref({
      occupation:&#39;程序员&#39;,
      salary:&#39;10k&#39;
    })
    console.log(name)
    console.log(age)
    //方法
    function say(){
      job.value.salary=&#39;12k&#39;
    }
    return {
      name,
      age,
      job,
      say
    }
  }
}
</script>
Copier après la connexion

A ce moment, nous imprimons obj.value Ce n'est plus un objet refimpl et devient un objet proxy, car la couche inférieure de vue3 est un objet proxy, un. type de données de base. Le détournement de données est effectué sur la base de get et set dans Object.defineProperty. Vue3 a encapsulé reactive, ce qui équivaut à appeler automatiquement reactive lorsque nous appelons ref

reactive

Nous avons dit ci-dessus que l'objet dans ref appellera reactive. . Convertissez l'objet en proxy. Maintenant, nous le transformons directement en proxy via réactif. Il a une profonde réactivité

<template>
  <div class="home">
    <h1>姓名:{{name}}</h1>
    <h1>年龄:{{age}}</h1>
    <h2>职业:{{job.occupation}}<br>薪资:{{job.salary}}</h2>
    <h3>爱好:{{hobby[0]}},{{hobby[1]}},{{ hobby[2] }}</h3>
    <button @click="say">修改</button>
  </div>
</template>
<script>
import {ref,reactive} from &#39;vue&#39;
export default {
  name: &#39;Home&#39;,
  setup(){
    let name = ref(&#39;波妞&#39;)
    let age = ref(18)
    let job=reactive({
      occupation:&#39;程序员&#39;,
      salary:&#39;10k&#39;
    })
    let hobby=reactive([&#39;吃饭&#39;,&#39;睡觉&#39;,&#39;打豆豆&#39;])
    console.log(name)
    console.log(age)
    //方法
    function say(){
      job.salary=&#39;12k&#39;
      hobby[0]=&#39;学习&#39;
    }
    return {
      name,
      age,
      job,
      say,
      hobby
    }
  }
}
</script>
Copier après la connexion

À ce moment-là, vous sentirez certainement qu'il y a trop de méthodes. .N'est-ce pas comme ça ? C'est cool, mais il y a un problème. S'il y a un tas de données, vous n'avez pas besoin d'aller sur .value tout le temps et de cliquer jusqu'à ce qu'il fume. peut utiliser la forme de données simulées dans vue2, ce qui se sentira mieux

<template>
  <div class="home">
    <h1>姓名:{{data.name}}</h1>
    <h1>年龄:{{data.age}}</h1>
    <h2>职业:{{data.job.occupation}}<br>薪资:{{data.job.salary}}</h2>
    <h3>爱好:{{data.hobby[0]}},{{data.hobby[1]}},{{ data.hobby[2] }}</h3>
    <button @click="say">修改</button>
  </div>
</template>
<script>
import {reactive} from &#39;vue&#39;
export default {
  name: &#39;Home&#39;,
  setup(){
    let data=reactive({
      name:&#39;波妞&#39;,
      age:18,
      job:{
        occupation:&#39;程序员&#39;,
        salary:&#39;10k&#39;
      },
      hobby:[&#39;吃饭&#39;,&#39;睡觉&#39;,&#39;打豆豆&#39;]
    })
    //方法
    function say(){
      data.job.salary=&#39;12k&#39;
      data.hobby[0]=&#39;学习&#39;
    }
    return {
      data,
      say,
    }
  }
}
</script>
Copier après la connexion

La différence entre ref et réactif

ref définit le type de données de base

ref implémente le détournement de données via get et set de Object.defineProperty()

ref exploite data.value, qui n'est pas nécessaire lors de la lecture. value

reactive définit le type de données d'objet ou de tableau

reactive implémente le détournement de données via Proxy

le fonctionnement réactif et la lecture des données ne sont pas requis value

6 Le principe réactif de vue3

Le principe réactif de vue2 utilise Object. Les méthodes get et set de .defineProperty effectuent un détournement de données pour obtenir de la réactivité. Dans vue2, seules les méthodes get et set sont utilisées pour lire et modifier les propriétés. Lorsque nous ajoutons ou supprimons, la page ne sera pas mise à jour en temps réel.

直接通过下标改数组,页面也不会实时更新

vue3中响应式原理使用Proxy进行代理,使用window内置对象Reflect反射,学了Es6的语法的就知道我们在使用Proxy进行代理,好比甲方公司给出需要什么技术的前端攻城狮,让乙方去干招聘、面试等环节

Proxy可以拦截对象中任意的属性变化,当然包括读写,添加,删除等

Reflect对源对象属性进行操作

const p=new Proxy(data, {
// 读取属性时调用
get (target, propName) {
return Reflect.get(target, propName)
},
//修改属性或添加属性时调用
set (target, propName, value) {
return Reflect.set(target, propName, value)
},
//删除属性时调用
deleteProperty (target, propName) {
return Reflect.deleteProperty(target, propName)
}
})
Copier après la connexion

【相关推荐:《vue.js教程》】

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment utiliser les graphiques électroniques dans Vue Comment utiliser les graphiques électroniques dans Vue May 09, 2024 pm 04:24 PM

L'utilisation d'ECharts dans Vue facilite l'ajout de fonctionnalités de visualisation de données à votre application. Les étapes spécifiques incluent : l'installation des packages ECharts et Vue ECharts, l'introduction d'ECharts, la création de composants de graphique, la configuration des options, l'utilisation de composants de graphique, la création de graphiques réactifs aux données Vue, l'ajout de fonctionnalités interactives et l'utilisation avancée.

Le rôle de l'export par défaut dans vue Le rôle de l'export par défaut dans vue May 09, 2024 pm 06:48 PM

Question : Quel est le rôle de l'exportation par défaut dans Vue ? Description détaillée : export default définit l'export par défaut du composant. Lors de l'importation, les composants sont automatiquement importés. Simplifiez le processus d’importation, améliorez la clarté et évitez les conflits. Couramment utilisé pour exporter des composants individuels, en utilisant à la fois les exportations nommées et par défaut, et pour enregistrer des composants globaux.

Comment utiliser la fonction map dans vue Comment utiliser la fonction map dans vue May 09, 2024 pm 06:54 PM

La fonction map Vue.js est une fonction intégrée d'ordre supérieur qui crée un nouveau tableau où chaque élément est le résultat transformé de chaque élément du tableau d'origine. La syntaxe est map(callbackFn), où callbackFn reçoit chaque élément du tableau comme premier argument, éventuellement l'index comme deuxième argument, et renvoie une valeur. La fonction map ne modifie pas le tableau d'origine.

La différence entre event et $event dans vue La différence entre event et $event dans vue May 08, 2024 pm 04:42 PM

Dans Vue.js, event est un événement JavaScript natif déclenché par le navigateur, tandis que $event est un objet d'événement abstrait spécifique à Vue utilisé dans les composants Vue. Il est généralement plus pratique d'utiliser $event car il est formaté et amélioré pour prendre en charge la liaison de données. Utilisez l'événement lorsque vous devez accéder à des fonctionnalités spécifiques de l'objet événement natif.

Le rôle du monté en vue Le rôle du monté en vue May 09, 2024 pm 02:51 PM

onMounted est un hook de cycle de vie de montage de composant dans Vue. Sa fonction est d'effectuer des opérations d'initialisation après le montage du composant sur le DOM, telles que l'obtention de références aux éléments du DOM, la définition de données, l'envoi de requêtes HTTP, l'enregistrement d'écouteurs d'événements, etc. Il n'est appelé qu'une seule fois lorsque le composant est monté. Si vous devez effectuer des opérations après la mise à jour du composant ou avant sa destruction, vous pouvez utiliser d'autres hooks de cycle de vie.

La différence entre l'exportation et l'exportation par défaut dans vue La différence entre l'exportation et l'exportation par défaut dans vue May 08, 2024 pm 05:27 PM

Il existe deux manières d'exporter des modules dans Vue.js : exporter et exporter par défaut. export est utilisé pour exporter des entités nommées et nécessite l'utilisation d'accolades ; export default est utilisé pour exporter des entités par défaut et ne nécessite pas d'accolades. Lors de l'importation, les entités exportées par export doivent utiliser leurs noms, tandis que les entités exportées par défaut d'exportation peuvent être utilisées implicitement. Il est recommandé d'utiliser l'exportation par défaut pour les modules qui doivent être importés plusieurs fois et d'utiliser l'exportation pour les modules qui ne sont exportés qu'une seule fois.

Que sont les crochets en vue Que sont les crochets en vue May 09, 2024 pm 06:33 PM

Les hooks Vue sont des fonctions de rappel qui effectuent des actions sur des événements spécifiques ou des étapes du cycle de vie. Ils incluent des hooks de cycle de vie (tels que beforeCreate, Mounted, beforeDestroy), des hooks de gestion d'événements (tels que click, input, keydown) et des hooks personnalisés. Les hooks améliorent le contrôle des composants, répondent aux cycles de vie des composants, gèrent les interactions des utilisateurs et améliorent la réutilisabilité des composants. Pour utiliser des hooks, définissez simplement la fonction hook, exécutez la logique et renvoyez une valeur facultative.

Pour quels scénarios les modificateurs d'événements dans vue peuvent-ils être utilisés ? Pour quels scénarios les modificateurs d'événements dans vue peuvent-ils être utilisés ? May 09, 2024 pm 02:33 PM

Les modificateurs d'événements Vue.js sont utilisés pour ajouter des comportements spécifiques, notamment : empêcher le comportement par défaut (.prevent) arrêter le bouillonnement d'événements (.stop) événement ponctuel (.once) capturer l'événement (.capture) écouter passivement les événements (.passive) Adaptatif modificateur (.self)Modificateur de touche (.key)

See all articles