vue自定義全局組件實(shí)現(xiàn)彈框案例
本文實(shí)例為大家分享了vue自定義全局組件實(shí)現(xiàn)彈框案例的具體代碼,供大家參考,具體內(nèi)容如下
說明:本案例是封裝的一個(gè)彈框頁面,因?yàn)橹幌胍粋€(gè)遮罩,內(nèi)容自定義。因?yàn)镋lementUI上已經(jīng)提供了一個(gè)彈框組件,但覺得elementUI的組件內(nèi)容有點(diǎn)多,所有自己就封裝了全局組件。自己封裝的參考了elementUI組件的源碼。

主要步驟如下
1.創(chuàng)建一個(gè)文件夾my-dialog
2.在my-dialog文件夾下創(chuàng)建MyDialog.vue和index.js
3.index.js需要引入MyDiloag并封裝和拋出
4.在main.js中引入index.js
主要代碼如下
1、MyDialog.vue
<template>
? ? <transition
? ? ? ? ? ? name="dialog-fade"
? ? ? ? ? ? @after-enter="afterEnter"
? ? ? ? ? ? @after-leave="afterLeave">
? ? ? ? <div v-show="visible">
? ? ? ? ? ? <div class="md-wapper" >
? ? ? ? ? ? </div>
? ? ? ? ? ? <div class="md-content" @click.self="handleOut">
? ? ? ? ? ? ? ? <slot></slot>
? ? ? ? ? ? </div>
? ? ? ? </div>
? ? </transition>
</template>
<script>
? ? export default {
? ? ? ? name: "MyDialog",
? ? ? ? data(){
? ? ? ? ? ? return{
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? props:{
? ? ? ? ? ? visible: {
? ? ? ? ? ? ? ? type: Boolean,
? ? ? ? ? ? ? ? default: false
? ? ? ? ? ? },
? ? ? ? ? ? closeOnClickModal: {
? ? ? ? ? ? ? ? type: Boolean,
? ? ? ? ? ? ? ? default: true
? ? ? ? ? ? },
? ? ? ? },
? ? ? ? methods:{
? ? ? ? ? ? afterEnter(){
? ? ? ? ? ? },
? ? ? ? ? ? afterLeave(){
? ? ? ? ? ? },
? ? ? ? ? ? handleOut(){
? ? ? ? ? ? ? ? // this.visible =false
? ? ? ? ? ? ? ? if(this.closeOnClickModal){
? ? ? ? ? ? ? ? ? ? this.$emit("closeMyDialog")
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? },
? ? }
</script>
<style scoped lang="less">
? ? .md-wapper{
? ? ? ? z-index: 10;
? ? ? ? position: fixed;
? ? ? ? left: 0;
? ? ? ? top: 0;
? ? ? ? width: 100%;
? ? ? ? height: 100%;
? ? ? ? opacity: .5;
? ? ? ? background: #000;
? ? }
? ? .md-content{
? ? ? ? z-index: 11;
? ? ? ? position: fixed;
? ? ? ? left: 0;
? ? ? ? top: 0;
? ? ? ? width: 100%;
? ? ? ? height: 100%;
? ? }
</style>2、index.js
import MyDialog from './MyDialog';
MyDialog.install = function(Vue) {
? ? Vue.component(MyDialog.name, MyDialog);
};
export default MyDialog;3、在main.js中引入
// 引入自定義彈框組件 import MyDialog from '@/common/my-dialog/index' Vue.use(MyDialog)

4、在項(xiàng)目中使用

<template v-else> ?<div class="ds-bg"> ? ?<my-dialog :visible="true"> ? ? ? ? <div class="da-sty"> ? ? ? ? ? ? ?<div class="da-show"> ? ? ? ? ? ? ? ?<div class="da-name"> ? ? ? ? ? ? ? ? ?我要報(bào)名 ? ? ? ? ? ? ? </div> ? ? ? ? ? ? </div> ? ? ? ? ? </div> ? ? ? ?</my-dialog> ? ? </div> </template>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue的url請(qǐng)求圖片的問題及請(qǐng)求失敗解決
這篇文章主要介紹了vue的url請(qǐng)求圖片的問題及請(qǐng)求失敗解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Vue使用babel-polyfill兼容IE解決白屏及語法報(bào)錯(cuò)問題
這篇文章主要介紹了Vue使用babel-polyfill兼容IE解決白屏及語法報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue3?+?elementplus實(shí)現(xiàn)表單驗(yàn)證+上傳圖片+?防止表單重復(fù)提交功能
這篇文章主要介紹了Vue3?+?elementplus?表單驗(yàn)證+上傳圖片+?防止表單重復(fù)提交,本文給大家展示效果圖和完整代碼,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
基于mpvue搭建微信小程序項(xiàng)目框架的教程詳解
mpvue從底層支持 Vue.js 語法和構(gòu)建工具體系,同時(shí)再結(jié)合相關(guān)UI組件庫,便可以高效的實(shí)現(xiàn)小程序開發(fā)。這篇文章主要介紹了基于mpvue搭建小程序項(xiàng)目框架 ,需要的朋友可以參考下2019-04-04
多個(gè)vue項(xiàng)目實(shí)現(xiàn)共用一個(gè)node-modules文件夾
這篇文章主要介紹了多個(gè)vue項(xiàng)目實(shí)現(xiàn)共用一個(gè)node-modules文件夾,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue3+TypeScript埋點(diǎn)方面的應(yīng)用實(shí)踐
本文詳細(xì)闡述了如何在Vue3中使用TypeScript實(shí)現(xiàn)埋點(diǎn)功能,包括全局注冊(cè)$track插件、Mixin實(shí)現(xiàn)全局埋點(diǎn)等,隨著Vue3的逐漸普及,在實(shí)際工作中采用Vue3+TypeScript實(shí)現(xiàn)埋點(diǎn)將會(huì)變得越來越流行2023-08-08

