vue.js是用于构建用户界面的渐进式JavaScript 的单页面应用框架,
特点:
- 易学易用,性能出色,适用场景丰富的 Web 前端框架。
- 无需构建步骤,渐进式增强静态的 HTML
- Vue 的设计非常注重灵活性和“可以被逐步集成
- 可以轻松引入 Vue 插件或其他的第三方库进行开发
核心特点:
虚拟DOM:
运行的js速度是很快的,大量的操作DOM就会很慢,时常在更新数据后会重新渲染页面,这样造成在没有改变数据的地方也重新渲染了DOM节点,这样就造成了很大程度上的资源浪费。
利用在内存中生成与真实DOM与之对应的数据结构,这个在内存中生成的结构称之为虚拟DOM,当数据发生变化时,能够智能地计算出重新渲染组件的最小代价并应用到DOM操作上
diff算法:
比较新旧节点,一边比较一边给真实的DOM打补丁,最终只把变化的部分重新渲染,提高了渲染效率的过程。
当数据发生改变时,set方法会让调用Dep.notify通知所有订阅者Watcher,订阅者就会调用patch给真实的DOM打补丁,更新相应的视图。
响应式:
vue是响应式的,我们通过Object.defineProperty
为对象obj
添加属性,可以设置对象属性的getter
和setter
函数。之后我们每次通过点语法获取属性都会执行这里的getter
函数,在这个函数中我们会把调用此属性的依赖收集到一个集合中 ;而在我们给属性赋值(修改属性)时,会触发这里定义的setter
函数,在次函数中会去通知集合中的依赖更新,做到数据变更驱动视图变更。
双向数据绑定:
提供了实现数据双向绑定的手段,我们可以通过v-model的语法糖来实现`
MVVM:
Model-View-ViewModel
Model 表示数据模型层。 view 表示视图层, ViewModel 是 View 和 Model 层的桥梁,数据绑定到 viewModel 层并自动渲染到页面中,视图变化通知 viewModel 层更新数据
网友评论