Vue.js是一个渐进式的基于MVVM设计模式的纯前端javascript框架。
适用于以数据增删改查操作为主的项目。
优点:(1)渐进式:不要求整个项目都用Vue做,可以和个别技术混搭;
(2)纯前端js框架:与nodejs无关!单靠浏览器就可以运行;
(3)便于大项目的开发,避免重复编码,提高开发效率。
使用:(1)直接下载,并使用script引入vue.js文件;
(2)使用Vue-Cli脚手架工具。
MVVM设计模式是对前端三大部分代码的重新划分。
原理:访问器属性+观察者模式+虚拟Dom树
(1)View——界面/视图
包括传统的HTML+CSS,增强了HTML的功能:
比如:HTML中可以写变量,js表达式,分支和循环等程序。
(2)Model——模型
程序中创建的或从服务端获取的数据,一般用JS中的一个对象来保存。
模型对象中保存着一个页面所需要的所有变量。
(3)ViewModel——视图模型
替代手写的Dom/Jquery操作,把模型中的数据和界面中的HTML元素 “绑定” 在一起。
可让页面元素内容和js程序中的数据联动变化,自动同步数据和页面元素。
Tips:
(1)定义界面的时候,整个界面只能包含在一个统一的父元素下。
<div id="app">......</div>
(2)new Vue ( ) 将 data{ } 对象引入new Vue ( ) 中,并打散 data { } 对象,使 data { } 对象中的每个属性都变为单独的属性,直接隶属于 new Vue( ) 对象下。
(3)new Vue ( ) 将 methods{ } 对象引入new Vue ( ) 中,并打散 methods { } 对象,使 methods { } 对象中的方法/函数直接隶属于 new Vue( ) 对象下。
(4)methods { } 对象中的方法/函数和 data { } 对象中的每个属性属于平级,所以,在methods的方法中,可以直接用 "this.属性名" 去操作data中的属性。
(5)虚拟Dom树(Virtaul Dom)
只保存可能变化的节点的简化版Dom树。
new Vue( ) 时,vue对象通过扫描真实的Dom树,只将可能变化的元素保存到虚拟Dom树上。
当收到变量改变的通知时,vue会快速遍历虚拟Dom树,找到受影响的元素,调用已经封装好的Dom函数,只更新页面中受影响的元素,不受影响的元素,不会改变。
优点:a.小,仅保存可能变化的元素,遍历快,查找快!
b.只更新受影响的元素,效率高!
c.已经封装了Dom操作,自动修改页面,避免大量重复的Dom操作。