Vue.js的核心思想

数据驱动

DOM树数据的一种自然映射

如果没有使用Vue.js,使用Ajax从后端获取数据,然后手动触发DOM改变,或者通过前端交互改变一些数据,仍然需要手动的触发一些DOM的改变,手动改变DOM不仅是一个繁琐的过程,而且非常容易出错。

使用Vue.js 之后,省去了手动触发DOM的操作,在Vue.js里面,只需要改变数据,Vue.js通过directive指令对DOM进行一层封装,当数据发生变化,会通知指令去修改对应的DOM,数据驱动DOM变化,DOM是数据的一种自然映射。Vue.js还会对DOM操作进行监听,当我们修改视图的时候,从而改变数据,从而形成数据的双向绑定。

数据驱动原理

数据(model)是如何驱动视图(view)自动改变

 

我们有一份数据a.b,在Vue对象实例化的过程中,会给a.b这份数据通过ES5的object.defineProperty 属性添加一个getter、setter,

同时,Vue.js 会对模板进行编译,解析生成一个指令对象,这里就是一个v-text指令,每个指令对象会关联一个Watch,当我们在对应的表达式在a.b做求值的时候,就会触发a.b的getter,这里我们会将依赖升级到watch里面,当我们再次改变a.b的时候,会通知到对应管理的watcher,再次对a.b求值,对比新值,当发现值改变了,watcher又会通知到指令,调用指令的update方法,由于指令是对DOM的封装,所以会调用原生DOM的方法去更新时视图,我们就完成了一个数据改变到视图更新的过程。

组件化

组件化的目的:扩展HTML元素,封装可重用的代码。

在Vue.js中,每个组件对应的都是Vue module,最终生成一个module树(图右),它和DOM树就是一个一一对应的关系。

组件的设计原则:

页面上面每个独立的可视 / 可交互区域即可视为一个组件

每个组件对应一个工程目录,组件所需要的各种资源在这个目录下就近维护。(就近维护体现了前端开发的工程化思想,它为开发提供了很好的分治策略,开发者都将清楚地知道自己开发和维护的功能单元,它的代码必将存在对应的组件目录中)。

页面不过是组件的容器,组件可以嵌套自由组合形成的的完整页面。

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值