亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

對element-ui的el-dialog進行封裝,應該怎樣處理visible?

對element-ui的el-dialog進行封裝,應該怎樣處理visible?

慕森王 2019-07-06 23:48:12
前端到處需要用到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貢獻1790條經驗 獲得超9個贊

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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號