atao89

一个专注前端技术的菜鸟

0%

认识Vue

认识Vue

关于 Vue 的描述有不少,不外乎都会拿来与 Angular 和 React 对比,同样头顶 MVVM 双向数据驱动设计模式光环的 Angular 自然被对比的最多,但到目前为止,Angular 在热度上已明显不及 Vue,性能已成为最大的诟病。

Vue、React 和 Angular,其实都是在原生 JS 基础上,对面向对象不一样的实现方式而已,所以要想使用这三者中的任意一种,首先要有一定的 JS 基础和对面向对象有一定的认识。

在代码层面,Vue 只是一个构造函数,整个 Vue 的实现都在实例化这个构造函数开始。

1
<script src="https://unpkg.com/vue/dist/vue.js"></script>
1
<div id="app"></div>
1
2
3
4
5
6
7
var vm = new Vue({
el: '#app'// Vue 实例元素
data: {
//数据
}
...
})

认识数据驱动模式

开始接触前端编程的基本上都是先学习 DOM 节点操作,jQuery 在这一领域上一度成为了标准,所以在前端编程的领域中,jQuery 几乎是每个开发者的标配。随着前后端分离的成熟,产品或项目都趋于分布式部署,开发者已不满足于操作 DOM 节点, 设计模式便慢慢的被前端化。

数据驱动的设计模式在思维逻辑上与 DOM 节点操作完全不一样。

1
2
3
4
<div id="div1"></div>
<div id="app">
<span>{{message}}</span>
</div>

1
2
3
4
5
6
7
8
9
10
//DOM 节点操作
document.getElementById('div1').innerText = '节点被动改变'

//Vue 数据驱动: 当 message 发生改变的时候,span 会相应的发生改变,而不需要手动去改变 span。
var vm = new Vue({
el: '#app',
data: {
message: '我是通过映射显示的文本'
}
})

认识 MVVM 模式

M:Model,称之为数据模型,在前端以对象的形式表现。

1
var data = {message: '我就是一个数据模型'}

V:View,视图,也就是 HTML
1
2
3
<div id="app">
<span>我是视图</span>
</div>

VM:ViewModel,就是连接数据和视图的桥梁,当 Model 发生改变的时候,ViewModel 便将数据映射到视图。

那么数据驱动模式和 MVVM 模式有什么关系,换句话说,MVVM 是数据驱动模式的一种实现,Vue 是 MVVM 的一种实现。