vue子传父的一种新方法:this.$emit(‘input‘, value)可实现实时向父组件传值

今天要说的就是利用v-model和this.$emit('input',value)实现子传父。

众所周知,v-model是给input绑定,方便对表单的双向绑定。

其实,v-model是个语法糖,具体案例如下所示。

javascript 复制代码
<input v-model="inputValue">

相当于
<input v-bind:value="inputValue" v-on:input="inputValue = $event.target.value">

在自定义组件中
<my-component v-model="inputValue"></my-component>

相当于
<my-component v-bind:value="inputValue" v-on:input="inputValue = argument[0]">
</my-component>

这个时候,inputValue接受的值就是input事件的回调函数的第一个参数,
所以在自定义组件中,要实现数据绑定,还需要$emit去触发input的事件。
this.$emit('input', value)//这个是在子组件中调用的
其实通过this.$emit('input', value)已经实现了子传父

我们今天所说的是自定义组件实时子传父,请继续看下面代码:

javascript 复制代码
在父组件中调用子组件
<my-component v-model="inputValue"></my-component>

子组件
watch: {
  // sonVal是子组件的一个变量值,当他变化的时候就会触发handler将新值传给父组件的inputValue
  sonVal: {
    handler (newVal, oldVal) {
      this.$emit('input', newVal)
    },
    deep: true,
  }
}
相关推荐
美狐美颜sdk4 小时前
跨平台直播美颜sdk集成攻略:Android、iOS与Web的统一方案
android·前端·ios
Airser4 小时前
npm启动Taro框架报错
前端·npm·taro
Anlici5 小时前
连载小说大学生课设 需求&架构
前端·javascript·后端
i源5 小时前
Java语言处理Js文件内容格式化
java·javascript
2501_938769996 小时前
React Server Components 进阶:数据预取与缓存
前端·react.js·缓存
“负拾捌”6 小时前
基于NodeJs实现一个MCP客户端(会话模式和无会话模式)
javascript·ai·node.js·大模型·mcp
蒜香拿铁6 小时前
Angular【基础语法】
前端·javascript·angular.js
xiaoxiao无脸男7 小时前
纯css:一个好玩的按钮边框动态动画
前端·css·css3
rookie_fly7 小时前
基于Vue的数字输入框指令
前端·vue.js·设计模式
元直数字电路验证7 小时前
ASP.NET Core Web APP(MVC)开发中无法全局配置 NuGet 包,该怎么解?
前端·javascript·ui·docker·asp.net·.net