国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

element-ui的el-dialog,簡單的封裝。

這篇具有很好參考價(jià)值的文章主要介紹了element-ui的el-dialog,簡單的封裝。。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

element-ui的el-dialog,簡單的封裝。,ui,vue.js,javascript

el-dialog是使用率很高的組件

使用el-dialog很多都是按照文檔的例子,用一個(gè)變量控制是否顯示,再來一個(gè)變量控制標(biāo)題。

如果我這個(gè)對(duì)話框多個(gè)地方使用的話還要?jiǎng)?chuàng)建多個(gè)變量,甚至關(guān)閉之后還要清空一些變量,應(yīng)該可以簡化一點(diǎn)。我寫vue的時(shí)候奉行的都是數(shù)據(jù)驅(qū)動(dòng),像剛才那種寫法沒有問題,也更靈活,反正都是數(shù)據(jù)驅(qū)動(dòng)的,即使錯(cuò)誤了也只是某些地方?jīng)]正確處理數(shù)據(jù)而已。

所以封裝也需要保持這些優(yōu)點(diǎn),靈活可控。

以下是封裝代碼

一個(gè).vue文件,表示封裝的相應(yīng)el-dialog代碼

<template>
    <el-dialog
        :title="configData.title+configData.afterTitle"
        v-model="configData.open"
        width="700px"
        :close-on-click-modal="false"
        append-to-body
    >
        <div class="edit-data-dialog">
            <h1>
                哈哈哈,代碼封裝
            </h1>
        </div>
        <template #footer>
            <div class="dialog-footer">
                <el-button @click="configData.open = false">取 消</el-button>
            </div>
        </template>
    </el-dialog>
</template>

<script>
/**
 * 數(shù)據(jù)修改對(duì)話框
 */
import { defineComponent, ref, getCurrentInstance, reactive, nextTick } from 'vue';
import { mergeObjProperty } from '@/common/OtherTools';

export default defineComponent({
    name: 'EditDataDialog',
    emits: ['onSuccess'],
    components: {
    },
    setup(_, { emit }) {
        const configMap = {
            //配置信息,初始化時(shí)使用
            open: {
                oldValue: false,
            },
            title: {
                oldValue: 'XX數(shù)據(jù)',
            },
            afterTitle: {
                oldValue: '',
            },
            isShow: {
                //是否只是展示
                oldValue: false,
            },
        };
        const configData = reactive(initDataByConfig(configData,{},configMap));
        const dataContainer = reactive({
            loading:false,
            form:{},
            list:[],
        });
        /** 初始化數(shù)據(jù)(外部調(diào)用) */
        function initData(show = true, data_ = {}, option = {}) {
            initDataByConfig(configData,option,configMap);
            dataContainer.list = [];
            dataContainer.form = {};
            dataContainer.loading = false;
            configData.open = show;
            nextTick(() => {
                dataContainer.form = data_;
                getDataInfo();
            });
        }
        /** 獲取數(shù)據(jù)列表 */
        function getDataInfo() {
          
        }
        return {
            configData,
            initData,
            dataContainer,
        };
    },
});
</script>

<style lang="scss" scoped>
.edit-data-dialog {
  
}
</style>


一個(gè)很簡單的例子,不用創(chuàng)建多個(gè)變量來控制顯示以及標(biāo)題和各種雜七雜八的狀態(tài),全部由外部指定,再由initDataByConfig方法初始化。

以下是initDataByConfig方法的代碼

/** 
 * 根據(jù)配置信息初始化對(duì)象
 * 如果 option 有該屬性則使用該屬性,沒有則初始化
 * configMap example
 *  const configMap = {
        //配置信息,初始化時(shí)使用
        open: {
            oldValue: false,
        },
        title: {
            oldValue: '入庫',
        },
        afterTitle: {
            oldValue: '',
        },
        isShow: {
            //是否只是展示
            oldValue: false,
        },
    };
 */
export function initDataByConfig(data = {}, configOption = {}, configMap = {}) {
    configOption = configOption || {};
    Object.keys(configMap).forEach(key => {
        //初始化一些配置信息
        if (Object.prototype.hasOwnProperty.call(configOption, key)) {
            data[key] = configOption[key];
        } else {
            if (typeof configMap[key].oldValue == 'function') {
                data[key] = configMap[key].oldValue();
            } else {
                data[key] = configMap[key].oldValue;
            }
        }
    });
    return data;
}

使用的話直接引用然后用ref獲取組件實(shí)例調(diào)用initData方法就行了。

這是我目前對(duì)el-dialog使用的簡單封裝,所有數(shù)據(jù)皆可外部指定且不用創(chuàng)建多個(gè)變量,更靈活可控。

反正就是好用的非常。

有些封裝不僅僅是模塊分離,還有代碼分離,反正就是一句話,代碼是先寫給人看的,然后才是機(jī)器。我奉行的封裝是必要才封裝,不然是不會(huì)去封裝的。

文章原文文章來源地址http://www.zghlxwxcb.cn/news/detail-651250.html

到了這里,關(guān)于element-ui的el-dialog,簡單的封裝。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【element-ui】el-dialog改變寬度

    dialog默認(rèn)寬度為父元素的50%,這就導(dǎo)致在移動(dòng)端會(huì)非常的窄,如圖1,需要限定寬度。 解決方法:添加 custom-class 屬性,然后在style中編寫樣式, 注意 ,如果有 scoped 限定,需要加 ::v-deep

    2024年02月11日
    瀏覽(34)
  • element-ui:多個(gè)el-dialog彈框切換會(huì)出現(xiàn)閃爍

    使用多個(gè)element-ui組件el-dialog彈框切換 打開A彈框,點(diǎn)擊關(guān)閉,緊接著打開B彈框 會(huì)出現(xiàn)一個(gè)明顯的閃爍 給第一個(gè)彈框關(guān)閉加一點(diǎn)延遲 參考 【ElementUI】dialog彈窗出現(xiàn)閃屏問題解決辦法

    2024年02月11日
    瀏覽(19)
  • element-ui中更換el-dialog彈窗中默認(rèn)的關(guān)閉按鈕

    element-ui中更換el-dialog彈窗中默認(rèn)的關(guān)閉按鈕

    在使用 element-ui 框架里的 el-dialog 組件時(shí),要修改彈窗里默認(rèn)的關(guān)閉圖標(biāo);如下圖所示:左邊是想要替換后的;右邊是組件默認(rèn)的關(guān)閉圖標(biāo); 通過檢查組件的元素;發(fā)現(xiàn)組件默認(rèn)的關(guān)閉是一個(gè)圖標(biāo);通過圖標(biāo)的形式展現(xiàn)的。 那就可以通過 CSS 隱藏當(dāng)前的圖標(biāo);然后在當(dāng)前圖標(biāo)

    2024年02月12日
    瀏覽(24)
  • element-ui框架的el-dialog彈出框被遮罩層擋住

    解決辦法 在el-dialog標(biāo)簽里添加 :modal-append-to-body=‘false’ 問題分析? 先來看看element-ui官網(wǎng)提供的屬性說明文檔 文檔解釋: 翻譯成大白話就是,若el-dialog彈出框設(shè)置了modal-append-to-body=\\\'true\\\'(默認(rèn))屬性,它的遮罩層就會(huì)被插入到body標(biāo)簽下(即與組件所在的最外層div同一層級(jí)),

    2024年02月16日
    瀏覽(32)
  • element-ui el-dialog如何設(shè)置響應(yīng)式寬高且永遠(yuǎn)水平垂直居中

    ????????el-dialog是使平常使用element-ui比較常用的一個(gè)組件,想要靈活控制它達(dá)到想要的開發(fā)效果,就必須要熟悉它默認(rèn)一些屬性:默認(rèn) width:50% , 高度 為標(biāo)題和el-dialog__body,el-dialog__footer 內(nèi)容以及padding撐開 ,定位上 默認(rèn)水平居中,距離頂端15vh ????????原理是width采

    2024年02月11日
    瀏覽(23)
  • vue/Element UI 實(shí)現(xiàn)Element UI el-dialog 自由拖動(dòng)

    vue/Element UI 實(shí)現(xiàn)Element UI el-dialog 自由拖動(dòng)

    前言: 最近有個(gè)項(xiàng)目,客戶要求彈窗可拖動(dòng),但是由于elemen ui本身的彈窗并沒有拖動(dòng)的屬性,無法滿足客戶的需求。 于是我百度找到了幾篇文章,終于可以實(shí)現(xiàn)客戶的需求! 請(qǐng)往下看↓↓ 一、新建一個(gè)目錄:utils 二、創(chuàng)建drag .js文件 三、創(chuàng)建directive.js 文件 四、main.js文件中

    2024年02月02日
    瀏覽(33)
  • [element-ui] v-click-outside與el-dialog同時(shí)存在,出現(xiàn)的Bug

    背景 : v-click-outside 點(diǎn)擊盒子aaa外部,盒子aaa隱藏 問題 :因?yàn)?el-dialog 綁在了body上,點(diǎn)擊 el-dialog 里的任意內(nèi)容,盒子aaa也隱藏了。 需求 :點(diǎn)擊 el-dialog 里的任意內(nèi)容,盒子aaa不隱藏 解決:給 el-dialog 加上 @click.native.stop 來阻止 el-dialog 內(nèi)部的點(diǎn)擊事件冒泡。

    2024年02月11日
    瀏覽(22)
  • 如何使用element-ui相關(guān)組件如:el-select,el-table,el-switch,el-pagination,el-dialog

    element-ui 官方鏈接: 組件 | Element https://element.eleme.cn/#/zh-CN/component/installation userTypeOptions后端響應(yīng)的對(duì)象數(shù)組數(shù)據(jù) 表格中添加模板的作用域?qū)崿F(xiàn) 異步處理 監(jiān)聽status的狀態(tài) 權(quán)限修改異步處理: 幾個(gè)監(jiān)聽函數(shù)與異步請(qǐng)求 axios實(shí)現(xiàn)發(fā)送異步請(qǐng)求 監(jiān)聽彈窗

    2024年02月07日
    瀏覽(29)
  • Vue | Element UI Plus 完美解決el-dialog雙滾動(dòng)條、頁面抖動(dòng)問題

    解決因?yàn)闈L動(dòng)條隱藏導(dǎo)致的窗口抖動(dòng)問題: (添加 :lock-scroll=\\\"false\\\" 屬性)(無效的話把冒號(hào)去掉試試) 解決雙滾動(dòng)條問題: (無效的話去掉deep) 參考: http://t.csdnimg.cn/xavOG

    2024年04月25日
    瀏覽(154)
  • element UI組件庫el-dialog內(nèi)程序刷新el-dialog內(nèi)組件方法

    1、牢牢記住,vue是基于JavaScript ES6的,所以只要刷新頁面里面data下的數(shù)據(jù),頁面會(huì)自動(dòng)刷新的。 所以這個(gè)數(shù)據(jù)是父頁面?zhèn)鹘oel-dialog的,要刷新父頁面的數(shù)據(jù),el-dialog頁面內(nèi)的組件就可以刷新了。 2、在頁面的組件處理后臺(tái)程序完成后,可以調(diào)用 that.$parent.$parent.【父頁面的方

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包