关于封装表单编辑器的疑问
来源:5-10 表单组件-集成富文本编辑器 wangeditor
慕妹6057678
2023-11-16
老师你好,我在封装表单编辑器时的思路是:子组件引入wangEditor作为编辑器组件;父组件引入子组件。父组件通过属性给子组件传递初始显示的html字符串。子组件中,wangEditor本身有v-model的属性可以处理编辑器输入的数据。我的做法是,父组件传递数据a给子组件,子组件拷贝a作为数据b,用v-model绑定b,最后子组件通过分发事件将数据b传回父组件,父组件中的a数据就可以更新了。
我的疑问是,父组件a数据更新后,子组件因为接收a数据而a数据发生改变的缘故,子组件是不是又会重新渲染一次。我在子组件onUpdated回调中做了测试,当子组件本身修改数据b后,会触发一次onUpdated,当子组件通过分发事件将数据b传回父组件,父组件中的a数据更新后,又触发了一次onUpdated。
想请教下老师,这么做是不是不太好,有没有更好的方式呢。
写回答
1回答
-
五月的夏天
2023-11-17
如果你想实现双向绑定,可以在父组件直接通过v-model:xxx传值,这样子组件就可以直接修改父组件的值了,就不需要拷贝一次然后再分发事件,也可以在子组件定义一个修改值的方法,然后通过defineExpose暴露出去,然后父组件通过子组件的ref实例调用这个方法,
10
相似问题
表单组件最复杂
回答 2