Syntaxe de base de Vue3
Vue.js est un framework JavaScript progressif, principalement utilisé pour construire des interfaces utilisateur.
Vue.js est basé sur les concepts de composants et de données réactives, offrant un moyen simple et efficace de construire des interfaces utilisateur.
Composants à fichier unique de Vue
Le composant à fichier unique de Vue (SFC) est un format de fichier du framework Vue.js qui permet aux développeurs de placer du code HTML, JavaScript et CSS dans un seul fichier, généralement avec.vuecomme extension de fichier.
Un composant à fichier unique est une forme d'organisation de code réutilisable qui encapsule le HTML, le CSS et le JavaScript appartenant au même composant dans un fichier en utilisant.vuecomme suffixe de fichier.
Voici quelques syntaxes et concepts de base courants de Vue.js, notamment la syntaxe des templates, les directives, la gestion des événements, les propriétés calculées et les composants, qui seront expliqués en détail dans les chapitres suivants.
1. Création d'une instance Vue
Créer une instance Vue est la première étape pour commencer à utiliser Vue.js. Généralement, vous créez une instance Vue dans un fichier HTML et la montez sur un élément DOM.
Exemple
{{ message }}
</div>
<script>
const HelloVueApp = {
data() {
return {
message: 'Hello Vue!!'
}
}
}
Vue.createApp(HelloVueApp).mount('#hello-vue')
</script>
Essayez-le »
Description de la section HTML :
<div id="hello-vue" class="demo">:
- Il s’agit d’un
<div>élément, qui a un id dehello-vueet une classe dedemo。 - Dans l'application Vue, ceci
<div>sera géré par l'instance Vue, et son contenu sera mis à jour lorsque les données changent.
{{ message }}:
- Ceci est la syntaxe de template de Vue.js, utilisée pour lier les
messagedonnées à la page. - Lorsque les données dans l'instance Vue
messagechangent, le contenu de la page sera mis à jour en conséquence.
Description de la section JavaScript :
Définition de l'instance Vue :
const HelloVueApp = {
data() {
return {
message: 'Hello Vue!!'
}
}
}HelloVueAppest un objet JavaScript simple contenant les options de composant Vue.data()la méthode renvoie un objet contenantmessagela propriété, et la valeur initiale de cette propriété est'Hello Vue!!'。
Créer et monter l'application Vue :
Vue.createApp()méthode est utilisée pour créer une instance d'application Vue, et le paramètre est un objet contenant les options du composant (ici c'estHelloVueApp)。.mount('#hello-vue')méthode monte l'instance d'application Vue sur l'élément de page avecid="hello-vue"l'élément DOM.
Processus d'exécution
- Lorsque la page se charge, le navigateur analyse le HTML et le JavaScript.
- Lorsque le script Vue.js s'exécute, il crée une instance d'application Vue et la lie à l'
<div id="hello-vue">élément. - L'instance d'application Vue, selon les
data()données initiales dans, vamessageafficher la valeur de ... sur la page{{ message }}position. - Quand
messageLorsque les données changent (par exemple, via l'interaction de l'utilisateur ou des opérations asynchrones), la page se mettra automatiquement à jour pour refléter ces changements.
2. Syntaxe de template
Interpolation
Vue.js utilise des doubles accolades{{ }}pour représenter l'interpolation de texte :
Exemple
Directives
Les directives sont des attributs spéciaux avec le préfixev-utilisé pour exprimer la logique dans les templates.
v-bind: lie dynamiquement un ou plusieurs attributs, ou une prop de composant.
<a v-bind:href="url.html">Link</a>
Raccourci :
<a :href="url.html">Link</a>
v-if / v-else-if / v-else: rendu conditionnel.
<p v-if="visible">内容可见</p> <p v-else>内容不可见</p>
v-for: rendu de liste.
<ul>
<li v-for="item in items" :key="item.id">{{ item.text }}</li>
</ul>
v-model: liaison de données bidirectionnelle.
<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
v-on: écouteur d'événement.
<button v-on:click="doSomething">Click me</button>
Raccourci :
<button @click="doSomething">Click me</button>
3. Gestion des événements
Dans Vue.js, vous pouvez utiliser la directive v-on pour écouter les événements DOM et exécuter du code JavaScript lorsqu'ils sont déclenchés.
Exemple
<button @click="greet">Saluer</button>
</div>
<script>
createApp({
methods: {
greet() {
alert('Bonjour !');
}
}
}).mount('#app');
</script>
4. Propriétés calculées
Les propriétés calculées sont des propriétés mises en cache en fonction de leurs dépendances. Une propriété calculée n'est recalculée que lorsque ses dépendances associées changent.
Exemple
<p>{{ reversedMessage }}</p>
</div>
<script>
createApp({
data() {
return {
message: 'Bonjour'
};
},
computed: {
reversedMessage() {
return this.message.split('').reverse().join('');
}
}
}).mount('#app');
</script>
5. Composants
Les composants sont l'une des fonctionnalités les plus puissantes de Vue.js. Les composants permettent de construire de grandes applications à l'aide de petits composants indépendants et généralement réutilisables.
Exemple
app.component('my-component', {
template: '<div>Un composant personnalisé !</div>'
});
Utilisation des composants
Exemple
<my-component></my-component>
</div>
<script>
const app = createApp({});
app.component('my-component', {
template: '<div>Un composant personnalisé !</div>'
});
app.mount('#app');
</script>
6. Props et événements
Props
Les props servent à transmettre des données entre les composants.
Exemple
<blog-post title="Mon parcours avec Vue"></blog-post>
</div>
<script>
const app = createApp({
data() {
return {};
}
});
app.component('blog-post', {
props: ['title'],
template: '<h3>{{ title }}</h3>'
});
app.mount('#app');
</script>
Événements
Les composants enfants utilisent$emitpour déclencher des événements, et les composants parents peuvent écouter ces événements.
Exemple
<button-counter @increment="incrementTotal"></button-counter>
<p>Clics totaux : {{ total }}</p>
</div>
<script>
const app = createApp({
data() {
return {
total: 0
};
},
methods: {
incrementTotal() {
this.total++;
}
}
});
app.component('button-counter', {
template: '<button @click="increment">Vous m'avez cliqué {{ count }} fois.</button>',
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
this.$emit('increment');
}
}
});
app.mount('#app');
</script>