Maison interface Web js tutoriel vue crée un composant bouton

vue crée un composant bouton

Jun 13, 2018 am 11:08 AM
vue 按钮

Cette fois, je vais vous montrer comment créer un composant bouton avec Vue. Quelles sont les précautions à prendre pour créer un composant bouton avec Vue. Ce qui suit est un cas pratique, jetons un coup d'oeil.

Solution :

  1. Communication via des composants parent-enfant ($refs et props)

  2. props accepte les paramètres, $refs appels La méthode du sous-composant

  3. est utilisée pour changer l'état du bouton en cliquant sur Soumettre. En cas d'échec, l'état du bouton est annulé

est construit sous src/components/ Un bouton.vue

<template>
<!-- use plane -->
<!-- 传入bgColor改变按钮背景色 -->
<!-- state切换button的状态 调用cancel()可以切换 -->
<!-- text为按钮文字 -->
 <p class="container">
  <button 
   @click="confirm"
   :disabled="state" 
   class="confirm" 
   :style="{background: btnData.bgColor}"
  >{{text}}</button>
 </p>
</template>
<script>
export default {
 data(){
  return {
   text: this.btnData.text,
   state: false,
  }
 },
 props: {
  btnData: {
   types: Array,
   default() {
    return {
     text: &#39;确认&#39;,
    }
   }
  }
 },
 methods: {
  confirm(){
   this.text += &#39;...&#39;
   this.state = true
   //这里是激活父组件的事件,因为子组件是不会冒泡到父组件上的,必须手动调用$emit
   //相对应父组件要在调用该组件的时候,将其挂载到上面
   this.$emit("confirm")
  },
  cancel(){
   this.text = this.btnData.text
   this.state = false
  }
 }
}
</script>
<style lang="less" scoped>
.confirm {
 border: none;
 color: #fff;
 width: 100%;
 padding: 1rem 0;
 border-radius: 4px;
 font-size: 1.6rem;
 background: #5da1fd;
 &:focus {
  outline: none;
 }
}
</style>
Copier après la connexion
est appelé dans la page :


<template>
  <p class="btn-box">
   <Btn 
    :btnData="{text: &#39;确认注册&#39;}"
    <!--这里就要挂载$emit调用的事件 @confirm="想要调用事件的名字"-->
    @confirm="confirm"
    ref="btn"
   ></Btn>
  </p> 
</template>
<script>
import Btn from &#39;@/components/button&#39;
export default {
 components: {
  Btn
 },
 methods: {
  confirm(){
   if(!this.companyName){
    this.$toast("公司名不能为空") 
    this.$refs.btn.cancel()
   }
 }
}
</script>
Copier après la connexion
Ici, faites attention à quelques détails :

1. Une fois le composant bouton formé, l'espacement entre celui-ci et les autres éléments p est difficile à réutiliser s'il est fixé à l'intérieur du composant.


2. Lors de la réutilisation, le style du composant enfant ne peut pas être modifié dans le composant parent. Si vous souhaitez forcer le changement, écrivez-en un séparé et supprimez la portée.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée

Retournez à la page d'accueil après avoir partagé la page de développement de l'applet

Utilisez el expression pour juger si c'est le cas vide

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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines 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)

Pourquoi n'y a-t-il pas d'informations sur la demande de page sur le réseau de console après le saut Vue-Router? Pourquoi n'y a-t-il pas d'informations sur la demande de page sur le réseau de console après le saut Vue-Router? Apr 04, 2025 pm 05:27 PM

Pourquoi n'y a-t-il pas d'informations sur la demande de page sur le réseau de console après le saut Vue-Router? Lorsque vous utilisez Vue-Router pour la redirection de page, vous remarquerez peut-être un ...

Comment implémenter la fonction de téléchargement de photos des photographes élevés de différentes marques à l'avant? Comment implémenter la fonction de téléchargement de photos des photographes élevés de différentes marques à l'avant? Apr 04, 2025 pm 05:42 PM

Comment implémenter la fonction de téléchargement de photos de différentes marques de photographes élevés sur le frontal Lors du développement de projets frontaux, vous rencontrez souvent la nécessité d'intégrer des équipements matériels. pour...

Comment utiliser Vue pour implémenter des formulaires de citation électronique avec un en-tête unique et multi-corps? Comment utiliser Vue pour implémenter des formulaires de citation électronique avec un en-tête unique et multi-corps? Apr 04, 2025 pm 11:39 PM

Comment mettre en œuvre des formulaires de citation électronique avec un en-tête unique et multi-corps en Vue. Dans la gestion de l'entreprise moderne, le traitement électronique des formulaires de citation consiste à améliorer l'efficacité et ...

Comment réaliser l'effet de segmentation avec une bordure de courbe de 45 degrés? Comment réaliser l'effet de segmentation avec une bordure de courbe de 45 degrés? Apr 04, 2025 pm 11:48 PM

Conseils pour implémenter les effets des segments dans la conception de l'interface utilisateur, le segmenter est un élément de navigation commun, en particulier dans les applications mobiles et les pages Web réactives. ...

Comment utiliser EL-Table pour implémenter le groupe de table, glisser et déposer le tri dans Vue2? Comment utiliser EL-Table pour implémenter le groupe de table, glisser et déposer le tri dans Vue2? Apr 04, 2025 pm 07:54 PM

Implémentation du tri et du tri de groupe de table EL-Table Tri dans Vue2. L'utilisation de tables El-Table pour implémenter le tri et le tri de groupe dans VUE2 est une exigence commune. Supposons que nous ayons un ...

Comment s'assurer que le bas d'un objet 3D est fixé sur la carte à l'aide de Mapbox et Three.js dans Vue? Comment s'assurer que le bas d'un objet 3D est fixé sur la carte à l'aide de Mapbox et Three.js dans Vue? Apr 04, 2025 pm 06:42 PM

Comment utiliser Mapbox et Three.js dans Vue pour adapter des objets tridimensionnels pour cartographier les angles de visualisation. Lorsque vous utilisez VUE pour combiner Mapbox et Three.js, les objets tridimensionnels créés doivent ...

Les spécifications de dénomination JavaScript soulèvent-elles des problèmes de compatibilité dans Android WebView? Les spécifications de dénomination JavaScript soulèvent-elles des problèmes de compatibilité dans Android WebView? Apr 04, 2025 pm 07:15 PM

Spécification de dénomination JavaScript et Android ...

See all articles