美文网首页
v-model 控制组件显示隐藏

v-model 控制组件显示隐藏

作者: 从不放弃 | 来源:发表于2020-06-12 14:10 被阅读0次

    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
     }
    
    

    相关文章

      网友评论

          本文标题:v-model 控制组件显示隐藏

          本文链接:https://www.haomeiwen.com/subject/pehbzhtx.html