Maison > interface Web > Voir.js > Quels sont les points à noter dans la configuration de Vue3 et quels sont les attributs de surveillance de la montre ?

Quels sont les points à noter dans la configuration de Vue3 et quels sont les attributs de surveillance de la montre ?

王林
Libérer: 2023-05-14 15:31:06
avant
1080 Les gens l'ont consulté

Tout d'abord, les instructions de configuration

1.1 Le temps d'exécution de la configuration

1. Le temps d'exécution de la configuration est antérieur à avantCréer l'exécution

  export default {
    name: "Demo",
    beforeCreate(){
      console.log('beforeCreate已执行');
    },
    setup() {
      console.log('setup已执行');
      let person = reactive({
        name: "小明",
        age: 20,
      });
      return {
        person,
      };
    },
  };
Copier après la connexion
Quels sont les points à noter dans la configuration de Vue3 et quels sont les attributs de surveillance de la montre ?Paramètres 1.2.steup

paramètres de configuration

1.props : La valeur est un objet, Contient : des attributs passés de l'extérieur du composant, et reçus à l'intérieur du composant


2.context : objet de contexte

①attrs : la valeur est un objet, comprenant : des attributs passés de l'extérieur du composant, mais non déclarés. dans la configuration des accessoires, équivalent à < code>this.$attrs

  export default {
    name: "Demo",
    props:[&#39;msg&#39;,&#39;age&#39;],
    setup(props) {
      console.log(props);
      let person = reactive({
        name: "小明",
        age: 20,
      });   
      return {
        person,
      };
    },
  };
Copier après la connexion

Notes sur la configuration de Vue3 Et quelles sont les situations des attributs de surveillance de la montre ? this.$attrs

<template v-slot:qwe>
<span>123</span>
</template>
<template v-slot:ewq>
<span>321</span>
</template>
Copier après la connexion

Quels sont les points à noter dans la configuration de Vue3 et quels sont les attributs de surveillance de la montre ?

②slots: 收到的插槽内容,相当于 this.$slots

在App中定义插槽

 console.log(context.slots); // 得到插槽
Copier après la connexion

在子组件中获取到插槽

<Demo @hi="Hello" msg="山鱼" age=10>
</Demo>
Copier après la connexion

Quels sont les points à noter dans la configuration de Vue3 et quels sont les attributs de surveillance de la montre ?

③emit: 分发自定义事件的函数,相当于 this.$emit

②slots : Le contenu du slot reçu est équivalent à this.$slots.

Définissez l'emplacement dans l'application

  setup() {
    function Hello(){
      console.log(&#39;你好!&#39;);
    }
    return {
      Hello
    }
  }
Copier après la connexion
Obtenez l'emplacement dans le sous-composant

 function point(){
        context.emit(&#39;hi&#39;,666)
      }     
5TgxPT2v-1681788304084)]

```js
 function point(){
        context.emit(&#39;hi&#39;,666)
      }
Copier après la connexion
Quels sont les points à noter dans la configuration de Vue3 et quels sont les attributs de surveillance de la montre ?Quels sont les points à noter dans la configuration de Vue3 et les conditions des attributs de surveillance de la surveillance

③emit : Une fonction qui distribue des événements personnalisés, équivalente à this.$emit.

Écrivez un événement personnalisé dans l'application et transmettez-le au composant

import { reactive,computed} from "vue";
  export default {
    name: "Demo",
    setup() {
      let person = reactive({
        firstName: "小",
        lastName: "明",
      }); 
      // 计算属性的简写形式,不考虑修改,是只读的
      /*person.fullName= computed(()=>{
        return person.firstName+&#39;-&#39;+person.lastName
      }) */
      // 计算属性的完整形式(可以读改)
      person.fullName= computed({
        get(){
          return person.firstName +&#39;-&#39;+person.lastName
        },
        set(value){
          const arr = value.split(&#39;-&#39;)
          person.firstName = arr[0]
          person.lastName = arr[1]
        }
      })
      return {
        person,
      };
    },
  };
Copier après la connexion
    watch(sum, (newvalue, oldvalue) => {
      console.log(&#39;当前值为&#39;+newvalue, &#39;以前值为&#39;+oldvalue);
    });
Copier après la connexion

Ensuite, accédez au sous-composant et utilisez context.comit pour obtenir l'événement personnalisé

        watch([sum,msg], (newvalue, oldvalue) => {
      console.log(&#39;当前值为&#39;+newvalue, &#39;以前值为&#39;+oldvalue);
    });
Copier après la connexion

Il est cohérent avec le fonction de configuration calculée dans Vue2

             watch(person,(newValue, oldValue) => {
                console.log(&#39;person变化了&#39;,newValue,oldValue)
             })
Copier après la connexion

Deuxièmement, il existe deux types de montres pour les attributs de surveillance de la montre

, à savoir la surveillance des données d'attribut unique et la surveillance des données d'attributs multiples

Les trois paramètres de la montre sont l'objet surveillé, la fonction surveillée et la configuration de l'attribut surveillé.
Surveiller les données définies par ref①Surveiller l'attribut pour surveiller une valeur réactive de ref

            watch(()=>person.name,(newValue,oldValue)=>{
               console.log(&#39;person.name发生了变化&#39;,newValue,oldValue)
           })
Copier après la connexion

②Surveiller plusieurs données réactives définies par ref

watch([()=>{person.age},()=>{person.name}],(newValue,oldValue)=>{
                console.log(&#39;person.name发生了变化&#39;,newValue,oldValue)
            })
Copier après la connexion

Surveiller les données définies par reactive

①Surveiller réactif définition Modifications des données

Les données définies à l'aide de réactif ne peuvent pas obtenir correctement la nouvelle valeur à l'aide de watch🎜🎜🎜, et une surveillance approfondie sera forcée d'ouvrir🎜🎜
 watch(()=>person.job,(newValue,oldValue)=>{
                console.log(&#39;person.name发生了变化&#39;,newValue,oldValue)
            }, {deep: true})
Copier après la connexion
🎜②Surveiller un certain attribut des données réactives définies par réactif🎜rrreee🎜③Surveillance de certains attributs de données réactives définies par réactif🎜rrreee🎜④Situation spéciale🎜🎜Remarque : Cette situation surveille un certain attribut dans l'objet défini par réactif, donc deep peut être activé🎜rrreee

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!

Étiquettes associées:
source:yisu.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal