v-model 控制组件显示隐藏

1、v-model原理

监听了 input事件

2、实现

//组件引用
<user-detail v-model="showUserDetail"></user-detail>
data() {
    return {
        showUserDetail: false
     }
}

showDeail(){ //打开子组件
     this.showUserDetail = true;
}

//userDetail组件实现
<div v-if="show">我是userDetail</div>

props: {
    value: {  //父组件使用v-model 默认vue会给子组件传一个名称为value的props
        type: Boolean,
        default: false
    }
}

data() {
    return {
        show: false
     }
}

watch: { //监听value变化,同步show的值(因为 子组件不能修改父组件传过来的props,所以需要重新定一个字段来同步变化)
    value(n, o) {
        this.show = n;
    }
}

close() {
   this.$emit('input', false); // 需要关闭组件时,触发input事件 设置父组件showUserDetail 为false
 }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容