双向数据绑定和单项数据绑定的认识
Posted Breaveleon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双向数据绑定和单项数据绑定的认识相关的知识,希望对你有一定的参考价值。
参考文章:
https://segmentfault.com/q/1010000002511449/a-1020000002514653
https://www.zhihu.com/question/49964363/answer/136022879
单向数据绑定:指的是我们先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成html代码,然后把这段HTML代码插入到文档流里面。
单向数据绑定缺点:HTML代码一旦生成完以后,就没有办法再变了,如果有新的数据来了,那就必须把之前的HTML代码去掉,再重新把新的数据和模板一起整合后插入到文档流中。
双向数据绑定:数据模型(Module)和视图(View)之间的双向绑定。
用户在视图上的修改会自动同步到数据模型中去,同样的,如果数据模型中的值发生了变化,也会立刻同步到视图中去。
双向数据绑定的优点是无需进行和单向数据绑定的那些CRUD(Create,Retrieve,Update,Delete)操作
双向数据绑定最经常的应用场景就是表单了,这样当用户在前端页面完成输入后,不用任何操作,我们就已经拿到了用户的数据存放到数据模型中了。
目前。实现双向数据绑定的前端框架主要有AngularJS,VueJS(通过引入vuex来实现单项的数据监控)等
大名鼎鼎的angular实现双向绑定的原理就是通过$watch来进行脏检查,但是这种脏效率很如果是大量的检查那就不敢想象了。
单项数据和双向数据使用的场景
基本上双向绑定的优缺点就是单向绑定的镜像了。优点是在表单交互较多的场景下,会简化大量业务无关的代码。缺点就是由于都是“暗箱操作”,我们无法追踪局部状态的变化(虽然大部分情况下我们并不关心),潜在的行为太多也增加了出错时 debug 的难度。同时由于组件数据变化来源入口变得可能不止一个,新手玩家很容易将数据流转方向弄得紊乱,如果再缺乏一些“管制”手段,最后就很容易因为一处错误操作造成应用雪崩。
以上是关于双向数据绑定和单项数据绑定的认识的主要内容,如果未能解决你的问题,请参考以下文章