


Quelle est la différence entre la syntaxe de vue3 et vue2
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.
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: 'appName', setup(){ //变量 let name = '打工仔' let age = 18 //方法 function say(){ console.log(`我只是一个${name},今年${age}岁`) } //返回一个对象 return { name, age, say } } } </script>
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 'vue' export default { name: 'Home', setup(){ let name = ref('中介') let age = ref(18) console.log(name) console.log(age) //方法 function say(){ name='波妞' age=18 } return { name, age, say } } } </script>
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 'vue' export default { name: 'Home', setup(){ let name = ref('中介') let age = ref(18) let job=ref({ occupation:'程序员', salary:'10k' }) console.log(name) console.log(age) //方法 function say(){ job.value.salary='12k' } return { name, age, job, say } } } </script>
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 'vue' export default { name: 'Home', setup(){ let name = ref('波妞') let age = ref(18) let job=reactive({ occupation:'程序员', salary:'10k' }) let hobby=reactive(['吃饭','睡觉','打豆豆']) console.log(name) console.log(age) //方法 function say(){ job.salary='12k' hobby[0]='学习' } return { name, age, job, say, hobby } } } </script>
À 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 'vue' export default { name: 'Home', setup(){ let data=reactive({ name:'波妞', age:18, job:{ occupation:'程序员', salary:'10k' }, hobby:['吃饭','睡觉','打豆豆'] }) //方法 function say(){ data.job.salary='12k' data.hobby[0]='学习' } return { data, say, } } } </script>
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) } })
【相关推荐:《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!

Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

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

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.

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.

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.

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.

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.

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.

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.

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)
