Vue3的双向绑定是如何实现的

 我来答
世纪网络17
2022-06-23 · TA获得超过5946个赞
知道小有建树答主
回答量:2426
采纳率:100%
帮助的人:142万
展开全部

Vue 的双向绑定是指数据变化能引起界面的变化,界面数据的变化也能驱动数据的改变。

这个功能其实和单向数据流规范不一样,所以开始接触 Vue 的时候非常吸引我的一个功能。我们发现 Element UI 的表单也有大量使用 v-model 进行双向绑定。

双向绑定 其实 不是所有的 元素/组件 都支持的,目前 Vue 支持 input , select , checkbox , radio 和组件 利用 v-model 指令进行 双向绑定。

我以前对 双向绑定 这个功能有很大的一个疑惑:就是 双向绑定 为什么不会造成更新死循环?即 界面变化 -> 数据变化 -> 界面变化 -> 数据变化 -> ...

由于不同的表单元素使用的内部指令是不一样的,我们就用 input 作为例子进行分析,其他的表单元素的双向绑定原理非常类似。

这一节涉及到 指令 事件处理 相关的知识点,如果不是太清楚的话,建议参阅我前面的两篇相关内容,否则有可能会有一些的疑惑。

input 输入数据 -> 数据处理 -> 调用 onUpdate:modelValue 对应的 $event => (inputValue = $event) 方法 -> 响应式数据变化触发组件更新 -> input 设置新值 input.value = newValue 更新至此终止

指令的更新有两个方法: beforeUpdate 和 updated 。
在 beforeUpdate 中执行有两个优势:

其实等同于:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式