Vue子组件通过emits传值后,能否用父组件方法绑定到对象?
方案可行性分析
完全可行,具体原因如下:
组件通信逻辑合规:子组件已通过
emits声明change事件,父组件通过@change="setUserInfo"监听事件的方式,完全符合Vue组件间通信的规范,子组件触发this.$emit('change', 目标数据)时,父组件的setUserInfo方法能正常接收到传递的数据。响应式赋值有效:父组件的
obj是在data选项中初始化的响应式对象,直接给obj添加payment_details属性并赋值的操作,在Vue 2和Vue 3中都能生效:- Vue 2中,即便未提前在
Expense类/构造函数中声明payment_details属性,直接赋值后,Vue会自动为该属性建立响应式关联(若需确保立即响应,也可使用Vue.set(this.obj, 'payment_details', data),但常规业务场景下直接赋值已足够); - Vue 3采用Proxy实现响应式,直接为对象添加属性本身就是响应式操作,无需额外处理。
- Vue 2中,即便未提前在
只要子组件正确触发change事件并传递有效数据,setUserInfo方法就能将数据绑定到obj.payment_details,父组件中依赖该属性的视图或逻辑会自动更新。
内容的提问来源于stack exchange,提问作者kennie
相关产品推荐
相关产品推荐

