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,
  }
}
相关推荐
于慨9 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz9 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶9 小时前
前端交互规范(Web 端)
前端
像我这样帅的人丶你还10 小时前
别再让JS耽误你进步了。
css·vue.js
@yanyu66610 小时前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
CHU72903510 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing10 小时前
Page-agent MCP结构
前端·人工智能
王霸天10 小时前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
小领航10 小时前
用 Three.js + Vue 3 打造炫酷的 3D 行政地图可视化组件
前端·github
@大迁世界10 小时前
2026年React大洗牌:React Hooks 将迎来重大升级
前端·javascript·react.js·前端框架·ecmascript