Blog

Table of Contents

Sur nuxt 3 la composition API est activée par défaut, elle ne remplace en aucun cas l’option API.

La composition API import automatiquement les fonctions Réactive de vue 3.

Contrairement à Vuejs, il n’y a pas besoin d’exporter les constantes réactives.

Déclaration de variable

Option API

Comopsition API

<template>
    <div>
        <p>nom : {{nom}}</p>
        <p>age : {{age}}</p>
        <p>est ce que je touche les apl ? {{apl ? "oui"  : "non"}}</p>
    </div>
</template>
<script>
    export default {
       data() {
        return {
            nom: 'kael',
            age: 35,
            apl: false
        }
       }
    }
</script> 
<template>
    <div>
        <p>nom : {{nom}}</p>
        <p>age : {{age}}</p>
        <p>est ce que je touche les apl ? {{apl ? "oui"  : "non"}}</p>
    </div>
</template>
<script setup>
    const nom = ref('kael');
    const age = ref(35);
    const apl = false;
</script> 

Déclaration d'un objet

Option API

<template>
    <div>
        <p>nom : {{personne.nom}}</p>
        <p>age : {{personne.age}}</p>
        <p>est ce que je touche les apl ? {{personne.apl ? "oui"  : "non"}}</p>
    </div>
</template>
<script>
    export default {
       data() {
        return {
            personne: {
                nom: 'kael',
                age: 35,
                apl: false
            }
        }
       }
    }
</script> 

Comopsition API

<template>
    <div>
        <p>nom : {{nom}}</p>
        <p>age : {{age}}</p>
        <p>est ce que je touche les apl ? {{apl ? "oui"  : "non"}}</p>
    </div>
</template>
<script setup>
    const personne = reactive(
        {
            nom: "kael",
            age: 35,
            apl: false
        }
 
    )
</script> 

Méthode

Option API

<template>
    <div>
        <p>compteur : <button @click="decrementer" > - </button>{{compteur}} <button @click="incrementer" > + </button></p>
    </div>
</template>
<script>
    export default {
       data() {
        return{
            compteur: 0
        }
 
       },
       methods: {
        decrementer(){
            this.compteur--
        },
        incrementer(){
            this.compteur++
        }
       },
    }
</script> 

Comopsition API

<template>
    <div>
        <p>compteur : <button @click="decrementer" > - </button>{{compteur}} <button @click="incrementer" > + </button></p>
    </div>
</template>
<script setup>
const compteur = ref(0)
const decrementer = () => compteur.value--
const incrementer = () => {compteur.value++}
</script> 

Computed

Option API

<template>
    <div>
      
      <input v-model="prenom" type="text" />
      <p>{{ nomComplet }}</p>

    </div>
</template>

<script>
    export default {
       data() {
        return {
            prenom: ''
        }
        
       },
       computed: {
        nomComplet() {
            if (this.prenom)
                return this.prenom + " RAYMONDE"
        }
       },
    }
</script> 

Comopsition API

<template>
    <div>
      
      <input v-model="prenom" type="text">
      <p>{{ nomComplet }}</p>

    </div>
</template>

<script setup>
    const prenom = ('')
    const nomComplet =(()=> this.prenom + " RAYMONDE")
    
</script> 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée Champs requis marqués avec *

Poster commentaire