第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大佬們遇到過這個問題嗎?對element-ui的el-dialog進行封裝,應該怎樣處理visible?

大佬們遇到過這個問題嗎?對element-ui的el-dialog進行封裝,應該怎樣處理visible?

慕斯王 2019-06-21 16:18:57
前端到處需要用到e-dialog,對dialog的樣式,close處理,visible處理的重復性代碼很多,打算對其進行進一步封裝,寫一個我自己的at-dialog,里頭的slot留給el-dialog,然后在index.vue的子組件testAtDialog.vue里面使用這個at-dialog。相當于用了三層父子關系,這個visible怎么樣處理才能管用?下面的代碼沒法把el-dialog顯示出來:index.vue:其中的testDialogVisible在index.vue的data中定義:testDialogVisible:{bol:false},testAtDialog.vue:Thisisatdialog.exportdefault{name:'testAtDialog',props:['visible'],data(){return{dialogVisible:{bol:false},}},watch:{visible:{handler:function(val,oldval){this.dialogVisible.bol=valif(val.bol){this.init()}},deep:true,immediate:true},},methods:{init(){console.log('init')},}}最后是封裝了el-dialog的組件at-dialog:exportdefault{name:'atDialog',props:{title:{type:String,default:this._("NoTitle"),},size:{type:String,default:"small"},visible:{type:Object,default:{bol:false}}},data(){return{width:"600px",};},watch:{visible(){console.log('watchvisible',this.visible)},size(){switch(this.size){case"auto":this.width=""break;case"medium":this.width="800px"break;case"small":this.width="600px"break;case"mini":this.width="400px"break;}},},methods:{closeDialog(){this.visible.bol=false//this.$emit('update:show',false)},}};
查看完整描述

2 回答

?
翻翻過去那場雪

TA貢獻2065條經(jīng)驗 獲得超14個贊

props:{
visible:{
type:Boolean,
default:false
},
},
computed:{
mVisible:{
get(){
returnthis.visible
},
set(s){
this.$emit('update:visible',s);
}
}
}
                            
查看完整回答
反對 回復 2019-06-21
  • 2 回答
  • 0 關注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號