Vue 3 defineModel 的双向绑定边界是什么?
理解 defineModel 对 prop 和 update 事件的封装,处理默认值、多个模型和组件契约。
参考答案
defineModel 可以在组件中声明一个用于 v-model 的 prop 和更新事件,减少手写配对代码。它仍然表达父子组件之间的数据契约,子组件不应随意修改不属于模型的外部状态。
可以声明多个模型或配置名称和修饰符,但要明确值的类型、默认值和转换规则。默认值可能造成父子状态暂时不同步,表单组件应设计清晰的初始值和更新时机。
双向绑定不等于无边界共享状态。复杂组件仍要区分输入值、校验错误、提交状态和服务端结果,避免把所有状态都塞进一个 model。