vue中的this.$emit(‘input‘,this.val);是什么意思?

本文介绍了Vue中父子组件如何通过`v-model`和`$emit`进行通信,展示了子组件如何利用`this.$emit('input', val)`改变父组件的值,以及父组件如何通过`v-model`监听子组件的值变化。同时,文章还提供了实例代码,详细解释了子组件如何触发`input`事件更新父组件的状态。
摘要由CSDN通过智能技术生成

子组件在传值的时候,选用input,如this.$emit(‘input’,val),在父组件直接用v-model绑定,就可以获取到了

而子组件也可以通过$emit(‘input’,false),去改变父组件中v-model 和 子组件中 value 的值 。
例子:

子组件

<template>
    <div>
        <div class="group">
            <label>{{title}}</label>
            <input type="text" placeholder="请输入" @input="changeData()" v-model="val">
        </div>
    </div>
</template>

<template>
    <div>
        <div class="group">
            <label>{{title}}</label>
            <input type="text" placeholder="请输入" @input="$emit('input', $event.target.value)"  v-model="val">
        </div>
    </div>
</template>

<script>
export default {
    props:["title"],
    data () {
        return {
            val:""
        }
    },
    methods:{
        changeData:function(){
            console.log(111);
            this.$emit('input',this.val);
        }
    }
}
</script>


父组件:

<cmsGroup title="用户名" v-model="username"></cmsGroup>
1
其中,子组件this.$emit(‘input’,this.val); v-model 绑定的是 input 事件

vue 再父子组件传值时,除了传统的父组件 :属性去传值外,还可以使用 父组件v-model传值,子组件props[‘value’]接收,

<!--父组件-->
 
<template>
   <test v-model = "isShow"></test>
   <button @click="isShow = !isShow">switch</button>
</template>
<script>
   import test from '../test';
   export default {
      components: {
         test
      },
      data() {
         return {
           isShow: false
         }
      }
   }
</script>



<!--子组件-->
 
<template>
  <div>
   <div>{{value}}</div>
   <Button @click="$emit('input',false)">关闭</Button>
  </div>
</template>
<script type="text/ecmascript-6">
    export default {
        props:['value'],
        mounted() {
            console.log(this.value)
        }
    }
</script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值