少侠请重新来过 - Vue学习笔记(一) - Vue是什么

vue.js是什么

vue.js是一套用于构建用户界面的渐进式框架,vue采用自底而上的增量开发设计。

vue的目标是通过尽可能简单的API实现响应的数据绑定组合视图组件

他提供了现代开发常用的高级功能:

  • 解耦视图和数据

  • 可复用的组件

  • 前端路由

  • 状态管理

  • 虚拟dom (Virtual DOM)

MVVM模式

MVVM (Model - View - ViewModel)模式由MVC模式衍生而来,当View发生变化时会自动更新到ViewModel,ViewModel发生变化时会更新View,View与ViewModel通过双向绑定建立联系:


MVVM关系

MVVM实现做法

  • 发布-订阅者模式(backbone.js)
    一般通过sub, pub的方式实现数据和视图的绑定监听,更新数据方式通常做法是 vm.set('property', value)

  • 脏值检查(angular.js)
    angular.js 是通过脏值检测的方式比对数据是否有变更,来决定是否更新视图,最简单的方式就是通过 setInterval() 定时轮询检测数据变动,angular只有在指定的事件触发时进入脏值检测

    • DOM事件
    • XHR响应事件
    • 浏览器Location变更事件
    • Timer事件(timeout , interval )
    • 执行 digest()或 apply()
  • 数据劫持: vue.js
    采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
    引用此文章

    Vue MVVM原理

你可能感兴趣的:(少侠请重新来过 - Vue学习笔记(一) - Vue是什么)