数据驱动

简介: 数据驱动在Vuejs中,只需要改变数据 model,Vuejs 通过 directives 指令 对 dom 进行封装,当数据发生变化,会通知指令修改对应的dom,通过数据驱动 dom,dom 是数据的一种自然映射。
数据驱动

在Vuejs中,只需要改变数据 model,Vuejs 通过 directives 指令 对 dom 进行封装,当数据发生变化,会通知指令修改对应的dom,通过数据驱动 domdom 是数据的一种自然映射


Vuejs还会对操作进行监听,当我们修改视图 View 的时候,Vuejs监听这些变化,从而改变数据。


这样形成了数据的双向绑定


Vue js 数据响应原理:

以下图为例,在一个Vue对象实例化的过程中,会给 a.b 这份数据,通过 es5 的 defineproperty 添加 getter setter, 通过 vuejs 会对模板做的编译,解析生成一个指令对象。每个指令对象都会关联一个Watcher。

当对指令对应的表达式 a.b 进行求值的时候,就会触发他的getter。我们就会把依赖收集到 Watcher 里面。

当我们再次改变 a.b 的时候,就会触发他的setter,就会通知到对应的 Watcher,然后 Watcher 会对 a.b 进行求值,然后对比新旧值,当发现值改变了,Watcher又会通知到指令,让指令的 Update方法执行。由于指令是对dom的封装,所以他会调用原生 Dom 的方法,去更新视图。

这样我们就完成了数据改变,到数据更新的全过程。


组件化
vuejs另一个核心思想是组件化,组件化的目的是扩展HTML元素,封装可重用的代码

如下图所示,左侧就是我们的页面,可以被拆分成一个个小的区块,每个区块对应一个组件,组件可以嵌套,最终组合形成一个完整的页面。
在Vuejs 中,每个组件都对应一个 viewmodel,最终我们生成右边的 viewmodel 的一个树,它和我们的 dom 树是一一对应的关系。



组件设计原则


1. 页面上每个独立的可视,可交互的区域视为一个组件,比如页面的头部,尾部,还有一些可以复用的区块,都可以抽象成一个组件。

2. 每个组件对应一个工程目录,组件所需要的各种资源在这个目录下就近维护就近维护原则,其实就体现了前端工程化思想,为前端开发提供了很好的分治策略,每个开发者都将很清楚的知道自己开发维护的功能单元,他的代码必然存在于对应的组件目录中。在那个目录下就可以找到功能单元内部所有的业务逻辑,无论样式、js、还是页面结构,都在这里。在vuejs 中可以通过 .vue 文件把组件依赖的模板、js和样式都写在一个文件中,可以说把组件化的就近维护原则发挥到了极致。

3. 页面不过是组件的容器,组件可以嵌套自由组合形成完整的页面。开发过程中,会将页面拆分成一个个组件,进行开发维护。







目录
相关文章
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
数据驱动决策支持
数据驱动决策支持
100 3
|
5月前
|
UED
理解服务中数据驱动及实现方式
【6月更文挑战第15天】本文介绍数据驱动设计强调通过分析用户行为和反馈来指导设计决策,减少个人偏见。通过识别关键领域、设定具体目标、形成可验证的假设,设计师可以使用数据来优化CTA转化率、降低跳出率等关键指标。数据分为定量和定性两种,用于衡量设计更改的效果。这种方法已被证实能提升转化率和销售额,同时平衡创新与用户体验。
183 3
理解服务中数据驱动及实现方式
|
28天前
|
边缘计算 数据可视化 安全
数据驱动方式的发展趋势是怎样的?
【10月更文挑战第13天】
31 3
|
28天前
|
机器学习/深度学习 搜索推荐 数据可视化
数据驱动方式在软件开发中的应用场景
【10月更文挑战第13天】总之,数据驱动方式在软件开发的各个领域都有着重要的应用,它使软件能够更好地适应动态变化的环境,提供更个性化、高效和智能的服务。随着技术的不断发展,数据驱动方式的应用场景还将不断拓展和深化。
22 0
|
5月前
|
机器学习/深度学习 存储 人工智能
数据驱动决策:技术背后的智慧
在当今信息爆炸的时代,数据驱动的决策正在成为各行各业的关键。本文探讨了数据技术如何在现代商业环境中发挥作用,以及如何利用数据分析来优化决策过程,从而提高效率和准确性。
172 2
|
6月前
|
UED
服务架构中的数据驱动设计
【5月更文挑战第13天】数据驱动设计是依据用户数据进行网页设计的方法,旨在通过测试了解用户需求并优化体验,从而增加流量和转化率。设计师应避免主观感受影响设计,因个人偏好可能与用户需求不符。数据驱动设计能减少偏见,提高转化率和销售额,是一个迭代过程,不断实验和优化。虽然有些人担忧可能限制创造力,但其实它仍需要创新和妥协。随着业务、用户和技术变化,数据驱动设计提供持续改进的解决方案。
78 0
服务架构中的数据驱动设计
|
6月前
|
数据采集 存储 分布式计算
数据驱动时代的大规模数据处理技术与挑战
在如今数据爆炸的时代,大规模数据处理成为了推动技术和商业创新的关键。本文将介绍当前数据驱动时代下的大规模数据处理技术,并探讨相关挑战。
64 0
|
分布式计算 大数据 Hadoop