Table des matières
Custom Header
Maison interface Web js tutoriel Description détaillée des puissants composants Vue.js

Description détaillée des puissants composants Vue.js

Mar 30, 2017 pm 03:21 PM
vue.js 组件

Cet article présente principalement la description détaillée des puissants composants Vue.js Les composants sont l'une des fonctions les plus puissantes de Vue.js. Les amis intéressés peuvent s'y référer

<.>Que sont les composants : Les composants sont l'une des fonctionnalités les plus puissantes de Vue.js. Les composants peuvent étendre l'élément HTML pour encapsuler du code réutilisable. À un niveau élevé, un composant est un élément auto-défini auquel le compilateur de Vue.js ajoute des fonctionnalités spéciales. Dans certains cas, les composants peuvent également se présenter sous la forme d'éléments HTML natifs, étendus avec l'attribut is.

Comment enregistrer un composant ?
Vous devez utiliser la méthode Vue.ext

end

pour créer un composant, puis utiliser la méthode Vue.component pour enregistrer le composant. Le format de la méthode Vue.extend est le suivant :

Si vous souhaitez utiliser ce composant créé ailleurs, vous devez nommer le composant :
var MyComponent = Vue.extend({
 // 选项...后面再介绍
})
Copier après la connexion


Vue.component ('my -component', MyComponent)


Après l'avoir nommé, vous pouvez utiliser le nom du composant dans la

balise HTML

, tout comme si vous utilisiez un élément DOM. Jetons un coup d'œil à un exemple complet d'enregistrement et d'utilisation de composants.
Code HTML :

Code js :
<p id="example">
 <my-component></my-component>
</p>
Copier après la connexion

Résultat de sortie :
// 定义
var MyComponent = Vue.extend({
 template: &#39;<p>A custom component!</p>&#39;
})

// 注册
Vue.component(&#39;my-component&#39;, MyComponent)

// 创建根实例
new Vue({
 el: &#39;#example&#39;
})
Copier après la connexion

 <p id="example">
 <p>A custom component!</p>
</p
Copier après la connexion

Composants imbriqués
Le composant lui-même peut également contenir des composants. Le composant parent ci-dessous contient un composant nommé composant-enfant, mais ce composant ne peut être utilisé que par le composant parent :

Le processus de définition ci-dessus est relativement lourd, et vous n'avez pas besoin d'appeler les méthodes Vue.component et Vue.extend à chaque fois :
var child = Vue.extend({
 template: &#39;<p>A custom component!</p>&#39;
});
var parent = Vue.extend({

 template: &#39;<p>Parent Component: <child-component></child-component></p>&#39;,
 components: {
 &#39;child-component&#39;: child
 }
});
Vue.component("parent-component", parent);
Copier après la connexion

// 在一个步骤中扩展与注册
Vue.component(&#39;my-component&#39;, {
template: &#39;<p>A custom component!</p>&#39;
})

// 局部注册也可以这么做
var Parent = Vue.extend({
 components: {
 &#39;my-component&#39;: {
  template: &#39;<p>A custom component!</p>&#39;
 }
 }
})
Copier après la connexion

Composant dynamique
Plusieurs composants peuvent utiliser le même point de montage, puis basculer entre eux de manière dynamique. Utilisez l'élément réservé et liez-le dynamiquement à son attribut is. L'exemple ci-dessous comporte trois composants : home, posts et archive sous la même instance de vue, et l'affichage des composants est commuté dynamiquement via la fonctionnalité

current

View.
code html :

code js :
<p id="dynamic">
 <button id="home">Home</button>
 <button id="posts">Posts</button>
 <button id="archive">Archive</button>
 <br>
 <component :is="currentView"></component>
</p>
Copier après la connexion

composant et v-
var vue = new Vue({
 el:"#dynamic",
 data: {
 currentView: "home"
 },
 components: {
 home:{
  template: "Home"
 },
 posts: {
  template: "Posts"
 },
 archive: {
  template: "Archive"
 }
 }
});
document.getElementById("home").onclick = function(){
vue.currentView = "home";
};
document.getElementById("posts").onclick = function(){
vue.currentView = "posts";
};
document.getElementById("archive").onclick = function(){
vue.currentView = "archive";
};
Copier après la connexion
pour



Impossible de transmettre des données au composant car la portée du composant est indépendante. Afin de transmettre des données au composant, des accessoires doivent être utilisés :

v-for="item in items"

:item="item"
 : index="$ index">


La raison pour laquelle l'élément n'est pas automatiquement injecté dans le composant est que cela entraînera un couplage étroit du composant avec le courant v-pour. Déclarer explicitement d'où proviennent les données permet aux composants d'être réutilisés dans

d'autres

endroits.

Principe de réactivité en profondeur


Lorsqu'un composant lie des données, comment la liaison peut-elle être efficace et peut être modifiée et ajoutée dynamiquement

Attribut

? Jetez un œil à l'introduction du principe ci-dessous.
Comment suivre les modifications : transmettez un

objet

différent à l'instance de vue comme option de données, vue.js parcourra ses propriétés, en utilisant Object. DefineProperty le convertit en getter/setter. Il s'agit d'une fonctionnalité ES5 et tous les vues.js ne prennent pas en charge IE8 ou version antérieure.
Chaque instruction/

liaison de données

dans le modèle a un objet observateur correspondant, qui enregistre les propriétés en tant que dépendances pendant le processus de calcul. Plus tard, lorsque le passeur dépendant est appelé, l'observateur sera invité à recalculer. Le processus est le suivant :

Description détaillée des puissants composants Vue.js
Problème de détection de changement : vue.js ne peut pas détecter l'ajout ou la

suppression d'attributs d'objet

, les attributs doivent être dans les données Ce n'est qu'en faisant cela que vue.js peut le convertir en getter/settermode pour répondre. Par exemple :

Cependant, il existe également un moyen d'ajouter des propriétés après la création de l'instance et de la rendre pertinente. Vous pouvez utiliser la méthode d'instance set(
var data = { a: 1 };
var vm = new Vue({
data: data
});
// `vm.a` 和 `data.a` 现在是响应的
vm.b = 2
// `vm.b` 不是响应的
data.b = 2
// `data.b` 不是响应的
Copier après la connexion
key

,value) :
vm set('b', 2)

// `vm.b` et `. data.b` est désormais réactif


对于普通对象可以使用全局方法:Vue.set(object, key, value):
Vue.set(data, 'c', 3)
// `vm.c` 和 `data.c` 现在是响应的

初始化数据:尽管Vue.js提供动态的添加相应属性,还是推荐在data对象上声明所有的相应属性。

不这么做:

var vm = new Vue({
 template: &#39;<p>{{msg}}</p>&#39;
})
// 然后添加 `msg`
vm.$set(&#39;msg&#39;, &#39;Hello!&#39;)
Copier après la connexion

应该这么做:

var vm = new Vue({
 data: {
 // 以一个空值声明 `msg`
 msg: &#39;&#39;
 },
 template: &#39;<p>{{msg}}</p>&#39;
})
// 然后设置 `msg`
vm.msg = &#39;Hello!&#39;
Copier après la connexion

组件完整案例
下面介绍的例子实现了模态窗口功能,代码也比较简单。

html代码:

<!-- 实现script定义一个模板 -->
<script type="x/template" id="modal-template">
 <!--模板是否显示通过v-show="show"来设置, transition设置动画效果-->
 <p class="modal-mask" v-show="show" transition="modal">
 <p class="modal-wrapper">
  <p class="modal-container">
  <p class="modal-header">
   <!--slot 相当于header占位符-->
   <slot name="header">
   default header
   </slot>
  </p>
  <p class="modal-body">
   <!--slot 相当于body占位符-->
   <slot name="body">
   default body
   </slot>
  </p>
  <p class="modal-footer">
   <!--slot 相当于footer占位符-->
   <slot name="footer">
   default footer
   </slot>
   <button class="modal-default-button" @click="show = false">OK</button>
  </p>
  </p>
 </p>
 </p>
</script>
<p id="app">
 <!--点击按钮时设置vue实例特性showModal的值为true-->
 <button id="show-modal" @click="showModal = true">show modal</button>
 <!--modal是自定义的一个插件,插件的特性show绑定vue实例的showModal特性-->
 <modal :show.sync="showModal">
 <!--替换modal插件中slot那么为header的内容-->
 <h3 id="Custom-nbsp-Header">Custom Header</h3>
 </modal>
</p>
Copier après la connexion

js代码:


//定义一个插件,名称为modal
Vue.component("modal", {
 //插件的模板绑定id为modal-template的DOM元素内容
 template: "#modal-template",
 props: {
 //特性,类型为布尔
 show:{
  type: Boolean,
  required: true,
  twoWay: true
 }
 }
});
//实例化vue,作用域在id为app元素下,
new Vue({
 el: "#app",
 data: {
 //特性,默认值为false
 showModal: false
 }
});
Copier après la connexion

css代码:

.modal-mask {
 position: fixed;
 z-index: 9998;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background-color: rgba(0, 0, 0, .5);
 display: table;
 transition: opacity .3s ease;
}

.modal-wrapper {
 display: table-cell;
 vertical-align: middle;
}

.modal-container {
 width: 300px;
 margin: 0px auto;
 padding: 20px 30px;
 background-color: #fff;
 border-radius: 2px;
 box-shadow: 0 2px 8px rgba(0, 0, 0, .33);
 transition: all .3s ease;
 font-family: Helvetica, Arial, sans-serif;
}

.modal-header h3 {
 margin-top: 0;
 color: #42b983;
}

.modal-body {
 margin: 20px 0;
}

.modal-default-button {
 float: right;
}

/*
* the following styles are auto-applied to elements with
* v-transition="modal" when their visiblity is toggled
* by Vue.js.
*
* You can easily play with the modal transition by editing
* these styles.
*/

.modal-enter, .modal-leave {
 opacity: 0;
}

.modal-enter .modal-container,
.modal-leave .modal-container {
 -webkit-transform: scale(1.1);
 transform: scale(1.1);
}
Copier après la connexion

相关文章:

通过纯Vue.js构建Bootstrap组件

Vue.js环境搭建教程介绍

超全面的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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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 installer le composant DirectPlay de l'ancienne version de Windows 10 Comment installer le composant DirectPlay de l'ancienne version de Windows 10 Dec 28, 2023 pm 03:43 PM

De nombreux utilisateurs rencontrent toujours des problèmes lorsqu'ils jouent à certains jeux sur Win10, tels que le gel de l'écran et les écrans flous. À l'heure actuelle, nous pouvons résoudre le problème en activant la fonction de lecture directe, et la méthode de fonctionnement de la fonction est également très simple. Comment installer Directplay, l'ancien composant de Win10 1. Entrez "Panneau de configuration" dans la zone de recherche et ouvrez-le 2. Sélectionnez de grandes icônes comme méthode d'affichage 3. Recherchez "Programmes et fonctionnalités" 4. Cliquez sur la gauche pour activer ou désactiver les fonctions Win 5. Sélectionnez l'ancienne version ici Cochez simplement la case

Explication graphique détaillée de la façon d'intégrer l'éditeur de code Ace dans un projet Vue Explication graphique détaillée de la façon d'intégrer l'éditeur de code Ace dans un projet Vue Apr 24, 2023 am 10:52 AM

Ace est un éditeur de code intégrable écrit en JavaScript. Il correspond aux fonctionnalités et aux performances des éditeurs natifs comme Sublime, Vim et TextMate. Il peut être facilement intégré à n’importe quelle page Web et application JavaScript. Ace est maintenu en tant qu'éditeur principal de l'IDE Cloud9 et est le successeur du projet Mozilla Skywriter (Bespin).

Découvrez comment écrire des tests unitaires dans Vue3 Découvrez comment écrire des tests unitaires dans Vue3 Apr 25, 2023 pm 07:41 PM

Vue.js est devenu aujourd'hui un framework très populaire dans le développement front-end. À mesure que Vue.js continue d'évoluer, les tests unitaires deviennent de plus en plus importants. Aujourd'hui, nous allons explorer comment écrire des tests unitaires dans Vue.js 3 et fournir quelques bonnes pratiques ainsi que des problèmes et solutions courants.

Comment implémenter le composant de calendrier à l'aide de Vue ? Comment implémenter le composant de calendrier à l'aide de Vue ? Jun 25, 2023 pm 01:28 PM

Vue est un framework front-end très populaire. Il fournit de nombreux outils et fonctions, tels que la création de composants, la liaison de données, la gestion d'événements, etc., qui peuvent aider les développeurs à créer des applications Web efficaces, flexibles et faciles à entretenir. Dans cet article, je vais vous présenter comment implémenter un composant de calendrier à l'aide de Vue. 1. Analyse des exigences Tout d'abord, nous devons analyser les exigences de ce composant de calendrier. Un calendrier de base doit avoir les fonctions suivantes : afficher la page du calendrier du mois en cours ; prendre en charge le passage au mois précédent ou au mois suivant en cliquant sur un certain jour ;

Bases du développement VUE3 : utilisation d'extensions pour hériter des composants Bases du développement VUE3 : utilisation d'extensions pour hériter des composants Jun 16, 2023 am 08:58 AM

Vue est actuellement l'un des frameworks frontaux les plus populaires, et VUE3 est la dernière version du framework Vue. Par rapport à VUE2, VUE3 a des performances plus élevées et une meilleure expérience de développement, et est devenu le premier choix de nombreux développeurs. Dans VUE3, utiliser extends pour hériter de composants est une méthode de développement très pratique. Cet article explique comment utiliser extends pour hériter de composants. Qu'est-ce qui s'étend ? Dans Vue, extends est un attribut très pratique, qui peut être utilisé pour que les composants enfants héritent de leurs parents.

Exemple détaillé de vue3 réalisant l'effet machine à écrire de chatgpt Exemple détaillé de vue3 réalisant l'effet machine à écrire de chatgpt Apr 18, 2023 pm 03:40 PM

Lorsque je travaillais sur le site miroir chatgpt, j'ai découvert que certains sites miroir n'avaient pas d'effets de curseur de machine à écrire, mais seulement une sortie de texte. Ne voulaient-ils pas le faire ? Je veux le faire de toute façon. Je l'ai donc étudié attentivement et j'ai réalisé l'effet de la machine à écrire et du curseur. Je vais maintenant partager ma solution et mes rendus ~.

Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes Mar 15, 2024 pm 04:51 PM

Le comportement d'affichage par défaut des composants du framework Angular ne concerne pas les éléments au niveau du bloc. Ce choix de conception favorise l'encapsulation des styles de composants et encourage les développeurs à définir consciemment la manière dont chaque composant est affiché. En définissant explicitement l'affichage des propriétés CSS, l'affichage des composants angulaires peut être entièrement contrôlé pour obtenir la mise en page et la réactivité souhaitées.

Comment ouvrir les paramètres de l'ancienne version des composants Win10 Comment ouvrir les paramètres de l'ancienne version des composants Win10 Dec 22, 2023 am 08:45 AM

Les composants de l'ancienne version de Win10 doivent être activés par les utilisateurs eux-mêmes dans les paramètres, car de nombreux composants sont généralement fermés par défaut. Nous devons d'abord entrer les paramètres. L'opération est très simple. Suivez simplement les étapes ci-dessous. composants de version ? Ouvrir 1. Cliquez sur Démarrer, puis cliquez sur « Système Win » 2. Cliquez pour accéder au Panneau de configuration 3. Cliquez ensuite sur le programme ci-dessous 4. Cliquez sur « Activer ou désactiver les fonctions Win » 5. Ici, vous pouvez choisir ce que vous voulez. ouvrir

See all articles