Comment implémenter une boîte contextuelle de type invite dans Vue ?
Comment implémenter une boîte contextuelle de type invite dans Vue ?
Dans le développement front-end, les boîtes contextuelles sont des composants très courants, en particulier les boîtes contextuelles similaires aux invites. Le framework Vue nous fournit de nombreux composants, mais aucun composant n'implémente directement la boîte de dialogue d'invite. Alors, comment implémenter une boîte contextuelle similaire à une invite dans Vue ? Cet article présentera brièvement plusieurs méthodes de mise en œuvre.
Méthode 1 : utilisez le $emit intégré de Vue
Dans Vue, chaque instance de Vue a une méthode $emit intégrée. Vous pouvez l'utiliser pour personnaliser les événements et écouter cet événement dans le composant. Nous pouvons utiliser cette fonctionnalité pour implémenter des boîtes contextuelles.
Tout d'abord, dans le composant qui doit faire apparaître la boîte pop-up, vous pouvez utiliser $emit pour personnaliser un événement. Dans cet événement, vous pouvez transmettre les paramètres requis par la boîte pop-up :
Vue.component('prompt', { template: ` <div> <div v-if="visible" class="mask"> <div class="prompt-box"> <h3>{{title}}</h3> <input type="text" v-model="inputValue"> <button @click="close('cancel')">取消</button> <button @click="close('ok')">确定</button> </div> </div> </div> `, props: { title: { type: String, default: '请输入' }, visible: { type: Boolean, default: false } }, data() { return { inputValue: '' } }, methods: { close(val) { if (val === 'ok') { this.$emit('ok', this.inputValue) } else { this.$emit('cancel') } } } })
Puis dans. le composant parent, écoutez cet événement personnalisé et utilisez v-model pour lier dans les deux sens la valeur de la zone de saisie :
<template> <div> <button @click="showPrompt = true">弹出提示框</button> <prompt title="请输入内容" :visible="showPrompt" @cancel="showPrompt = false" @ok="handleOk"></prompt> </div> </template> <script> import Prompt from './prompt.vue' export default { components: { Prompt }, data() { return { showPrompt: false, inputValue: '' } }, methods: { handleOk(val) { this.showPrompt = false this.inputValue = val } } } </script>
Méthode 2 : Utiliser la gestion de l'état Vuex
Si la boîte contextuelle doit être utilisée dans plusieurs composants et doit transmettre de nombreux paramètres, vous pouvez utiliser la gestion de l'état Vuex pour y parvenir.
Tout d'abord, ajoutez un nouvel état dans Vuex pour stocker l'état et les paramètres de la boîte contextuelle :
state: { isPromptShow: false, promptData: { title: '', inputPlaceholder: '', inputValue: '' } }
Ensuite, dans le composant qui doit faire apparaître la boîte contextuelle, utilisez la méthode $store.commit pour modifiez les états isPromptShow et promptData :
methods: { showPrompt() { this.$store.commit('setPromptData', { isPromptShow: true, promptData: { title: '请输入', inputPlaceholder: '请输入内容', inputValue: '' } }) } }
Dans le composant de la boîte contextuelle, vous pouvez utiliser mapState et mapMutations pour obtenir le statut dans Vuex et soumettre des mutations, réalisant ainsi la logique de réponse aux événements de la boîte contextuelle :
<template> <div v-if="isPromptShow" class="mask"> <div class="prompt-box"> <h3>{{promptData.title}}</h3> <input type="text" :placeholder="promptData.inputPlaceholder" v-model="promptData.inputValue"> <button @click="closePrompt('cancel')">取消</button> <button @click="closePrompt('ok')">确定</button> </div> </div> </template> <script> import { mapState, mapMutations } from 'vuex' export default { computed: { ...mapState(['isPromptShow', 'promptData']) }, methods: { ...mapMutations({ setPromptData: 'SET_PROMPT_DATA' }), closePrompt(val) { if (val === 'ok') { this.$emit('ok', this.promptData.inputValue) } else { this.$emit('cancel') } this.setPromptData({ isPromptShow: false }) } } } </script>
Changez le statut de isPromptShow dans vuex
mutations: { SET_PROMPT_DATA(state, data) { state.isPromptShow = data.isPromptShow state.promptData = data.promptData } }
Dans le composant parent, non seulement vous devez utiliser mapState de Vuex pour obtenir isPromptShow et promptData, et vous devez également utiliser mapActions pour appeler la méthode de soumission des mutations dans Vuex :
<template> <div> <button @click="showPrompt">弹出提示框</button> <prompt v-if="isPromptShow" @ok="handleOk" @cancel="closePrompt"></prompt> </div> </template> <script> import Prompt from './prompt.vue' import { mapState, mapActions } from 'vuex' export default { components: { Prompt }, computed: { ...mapState(['isPromptShow', 'promptData']) }, methods: { ...mapActions(['setPromptData']), showPrompt() { this.setPromptData({ isPromptShow: true, promptData: { title: '请输入', inputPlaceholder: '请输入内容', inputValue: '' } }) }, closePrompt() { this.setPromptData({ isPromptShow: false }) }, handleOk(val) { console.log(val) this.setPromptData({ isPromptShow: false }) } } } </script>
Méthode 3 : Utilisez une bibliothèque tierce
Si vous pensez que les deux méthodes ci-dessus sont trop gênantes, vous pouvez réellement l'envisager. Utilisez des bibliothèques tierces pour implémenter des boîtes contextuelles de type invite. Les bibliothèques tierces actuellement populaires incluent ElementUI, Vuetify, iView, etc. Ces bibliothèques fournissent des composants pop-up similaires à prompt, qui sont très pratiques.
Par exemple, il existe une boîte contextuelle MessageBox dans la bibliothèque de composants ElementUI :
this.$confirm('内容', 'title', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { // 点击确定回调 }).catch(() => { // 点击取消回调 })
Résumé
Cet article présente principalement trois méthodes pour implémenter des boîtes contextuelles de type invite dans Vue, à savoir en utilisant $emit, en utilisant Vuex gestion de l'état et utilisation de bibliothèques tierces. Chaque méthode a ses propres caractéristiques et scénarios applicables, et doit être sélectionnée en fonction de circonstances spécifiques.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Implémentez les effets de défilement marquee / texte dans VUE, en utilisant des animations CSS ou des bibliothèques tierces. Cet article présente comment utiliser l'animation CSS: créer du texte de défilement et envelopper du texte avec & lt; div & gt;. Définissez les animations CSS et défini: caché, largeur et animation. Définissez les images clés, Set Transforment: Translatex () au début et à la fin de l'animation. Ajustez les propriétés d'animation telles que la durée, la vitesse de défilement et la direction.

Vous pouvez interroger la version Vue en utilisant Vue Devtools pour afficher l'onglet Vue dans la console du navigateur. Utilisez NPM pour exécuter la commande "NPM List -g Vue". Recherchez l'élément VUE dans l'objet "dépendances" du fichier package.json. Pour les projets Vue CLI, exécutez la commande "Vue --version". Vérifiez les informations de la version dans le & lt; script & gt; Tag dans le fichier html qui fait référence au fichier VUE.

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.
