VUE 属于当初比拟热门的前端框架,在前端培训学习 VUE 好上手学习起来也不难,所以有工夫还想从事前端的敌人还请认真看完。
什么是 VUE?
首先 Vue.js(VUE),是一套用于构建用户界面的渐进式 JavaScript 框架,自底层向上利用,Vue 的外围库只关注视图层,容易入门,能够和第三方库或者已有的我的项目进行整合,能够做简单的单页利用。
VUE 的两个外围是什么?
数据驱动:在 VUE 中,数据的扭转会驱动视图的自动更新。传统做法是须要手动扭转 DOM 来使视图更新,而 VUE 只须要扭转数据。
组件化:组件化开发长处很多,能够很好的升高数据之间的耦合度。将罕用代码封装成组件之后就能高度的复用,进步代码可复用性。
这里说一下,一个页面能够有多个模块 / 组件组成。
什么是 VUE 的 MVVM 模式?
MVVM 是 Model-View-ViewModel 的缩写。mvvm 是一种设计思维。Model 层代表数据模型,也能够在 Model 中定义数据批改和操作的业务逻辑;View 代表 UI 组件,它负责将数据模型转化成 UI 展示进去,ViewModel 是一个同步 View 和 Model 的对象。
在 MVVM 架构下,View 和 Model 之间并没有间接的分割,而是通过 ViewModel 进行交互,Model 和 ViewModel 之间的交互是双向的,因而 View 数据的变动会同步到 Model 中,而 Model 数据的变动也会立刻反馈到 View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连贯了起来,而 View 和 Model 之间的同步工作齐全是主动的,无需人为干预,因而开发者只需关注业务逻辑,不须要手动操作 DOM, 不须要关注数据状态的同步问题,简单的数据状态保护齐全由 MVVM 来对立治理。
MVVM 和 MVC 有什么区别?
mvc 和 mvvm 其实区别并不大。都是一种设计思维。次要就是 mvc 中 Controller 演变成 mvvm 中的 viewModel。mvvm 次要解决了 mvc 中大量的 DOM 操作使页面渲染性能升高,加载速度变慢,影响用户体验。
什么是 VUE 的双向绑定?
VUE 的双向绑定是通过数据劫持联合发布者——订阅者的形式实现。
咱们晓得单方是绑定的,首先对数据进行劫持监听,所以须要监听器 Observer,用来监听所有属性,如果属性发生变化,就须要通知订阅者 Watcher 是否须要更新,因为订阅者是多个,所以要有一个音讯订阅起来专门收集这些订阅者,而后在监听器 Observer 和订阅者 Watcher 之间进行对立治理,接着有一个指令解析器 conpile,对每个节点元素进行扫描和解析,将相干指令对应初始化成一个订阅者 Watcher,并替换模板或者绑定相应的函数,此时订阅者 Watcher 接管到相应属性变动,就会执行对应的更新函数,从而更新视图。
实现一个监听器 Observer,用来劫持所有属性,如果有变动就告诉订阅者 Watcher。
实现一个音讯订阅器 Watcher,用来收到属性的变动告诉并执行相应函数从而更新。
实现一个解析器 Compile,能够扫描和解析每个节点的相干指令,并依据初始化模板以及初始化相应的订阅器。
V-IF 和 V -SHOW 有什么区别?
两者都是用来判断 DOM 节点是否显示。
实现形式
V-IF 依据前面数据的虚实值判断从 DOM 树上删除或重建节点。
V-SHOW 只是批改 CSS 款式,也就是 Display 的属性。
编译条件
V-IF 是惰性的,如果初始条件为假则什么也不做,只有在第一条件为真时才开始部分编译。
V-SHOW 是在任何条件下都被编译,而后被缓存,而且 DOM 元素始终保留。
编程过程
V-IF 切换有一个部分编译 / 卸载的过程,切换过程中适合地销毁和重建外部的事件监听和子组件。
V-SHOW 只是简略的基于 CSS 切换。
性能耗费
V-IF 有更高的切换耗费,不适宜做频繁切换。
V-SHOW 有更高的渲染耗费,适宜做频繁切换。