前提是在原来老代码的基础上,保证不影响其他功能。
一个页面多个表单组件来回切换,数据相互关联,怎么优雅的在父页面提交完整的数据,子组件的修改的数据,能够双向同步父组件?
在原代码基础上很容易扩充字段。
前提是在原来老代码的基础上,保证不影响其他功能。
一个页面多个表单组件来回切换,数据相互关联,怎么优雅的在父页面提交完整的数据,子组件的修改的数据,能够双向同步父组件?
在原代码基础上很容易扩充字段。
5 回答7.1k 阅读✓ 已解决
5 回答8.2k 阅读
2 回答10.3k 阅读✓ 已解决
2 回答12.6k 阅读✓ 已解决
2 回答10.4k 阅读✓ 已解决
1 回答5.1k 阅读✓ 已解决
4 回答6.1k 阅读
如果多个组件见有互相控制的,那么使用自定义组件的
v-model
规则改造子表单,然后在父级直接用v-model
绑定就可以了。其实就是props
+$emit
的方式。每次子表单修改之后兄弟表单也会同步到数据。#自定义组件的 v-model - 自定义事件 — Vue.js
当然如果不需要子组件之间的数据同步,也可以简单的在子组件写
promisify
的校验函数,在父级通过$refs.xx.onValid()
来调用并且返回表单结果。多个子组件用Promise.all()
来包裹,所有的校验函数都通过则继续执行。当然如果你是使用
AntD Vue
这样的UI组件库,也可以尝试直接在父级使用a-form
在子组件直接使用a-form-item
,这样在父级触发数据收集的时候也可以直接获取到子组件的内容。我在
AntD4Vue 1.x
的版本有尝试过,现在的3x
和4x
不清楚是否依然可以这样处理。笔记 - AntD of Vue 中 <AForm> 表单域组件化使用的尝试