Vue 基础

1Vue概述

1.1、什么是MVVM

MVVM Model-View-ViewModel )是一种软件设计模式,由微软 WPF (用于替代 WinForm ,以前就是 用这个技术开发桌面应用程序的)和Silverlight (类似于 Java Applet ,简单点说就是在浏览器上运行 WPF)的架构师 Ken Cooper Ted Peters 开发,是一种简化用户界面的事件驱动编程方式。
MVVM 源自于经典的 MVC Model-View-Controller )模式。 MVVM 的核心是 ViewModel 层,负责转换Model中的数据对象来让数据变得更容易管理和使用。其作用如下:
该层向上与视图层进行双向数据绑定
向下与 Model 层通过接口请求进行数据交互
 1.2、 为什么要使用MVVM

MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大好处

低耦合 :视图( View )可以独立于 Model 变化和修改,一个 ViewModel 可以绑定到不同的 View 上,当View变化的时候 Model 可以不变,当 Model 变化的时候 View 也可以不变。
可复用 :可以把一些视图逻辑放在一个 ViewModel 里面,让很多 View 重用这段视图逻辑。
独立开发:前后端分离,开发人员可以专注于业务逻辑和数据的开发( ViewMode ),设计人员可以专注于页面设计。
可测试 :界面素来是比较难以测试的,而现在测试可以针对 ViewModel 来写。
1 View
View 是视图层, 也就是用户界面。前端主要由 HTH L css 来构建, 为了更方便地展现数据, 已经产生 了各种各样的前后端模板语言, 比如FreeMarker Thyme leaf 等等, 各大 MVVM 框架如 Vue.js 、 Angular JS,等用来构建用户界面的内置模板语言。
2 Model
Model 是指数据模型, 泛指后端进行的各种业务逻辑处理和数据操控, 主要围绕数据库系统展开。这里的难点主要在于需要和前端约定统一的接口规则
3 ViewModel
ViewModel 是由前端开发人员组织生成和维护的视图数据层。在这一层, 前端开发者对从后端获取的Model数据进行转换处理, 做二次封装, 以生成符合 View 层使用预期的视图数据模型。
需要注意的是 View Model 所封装出来的数据模型包括视图的状态和行为两部分, 而 Model 层的数据模型是只包含状态的比如页面的这一块展示什么,那一块展示什么这些都属于视图状态( 展示 )
页面加载进来时发生什么,点击这一块发生什么,这一块滚动时发生什么这些都属于视图行为 ( 交互 ) 视图状态和行为都封装在了View Model 里。这样的封装使得 View Model 可以完整地去描述 View 层。由 于实现了双向绑定, View Model 的内容会实时展现在 View 层, 这是激动人心的, 因为前端开发者再也不必低效又麻烦地通过操纵DOM 去更新视图。

 

1.3 Vue
Vue( 读音 /vju/ , 类似于 view) 是一套用于构建用户界面的渐进式框架, 发布于 2014 2 月。与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用。 Vue 的核心库只关注视图层, 不仅易于上手, 还便于与第三方库( 如: vue-router vue-resource vue x) 或既有项目整合
1 MVVM 模式的实现者
Model :模型层, 在这里表示 JavaScript 对象
View :视图层, 在这里表示 DOM(HTML 操作的元素 )
ViewModel :连接视图和数据的中间件, Vue.js 就是 MVVM 中的 View Model 层的实现者
MVVM 架构中, 是不允许数据和视图直接通信的, 只能通过 ViewModel 来通信, 而 View Model 就是定义了一个Observer 观察者
ViewModel 能够观察到数据的变化, 并对视图对应的内容进行更新
ViewModel 能够监听到视图的变化, 并能够通知数据发生改变
1.3.1为什么使用Vue.js
轻量级 , 体积小是一个重要指标。 Vue.js 压缩后有只有 20 kb(Angular 压缩后 56kb+ React 压缩后44kb+)
移动优先。更适合 移动端 , 比如移动端的 Touch 事件
易上手,学习曲线平稳,文档齐全
吸取了 Angular( 模块化 ) React( 虚拟 DO ) 的长处, 并拥有自己独特的功能,如:计算属性
开源,社区活跃度高
1.4 、第一个Vue程序
v2.cn.vuejs.org :vue2 的官网

2Vue基础语法

2.1 v-bind
2.2 v-ifv-else
1. 在浏览器上运行,打开控制台
2. 在控制台输入 vm.type=false 然后回车,你会发现浏览器中显示的内容会直接变成 false
2.3 v-for
打开控制台,在控制台输入 vm.items.push({message 'vue hello'}) ,尝试追加一条数据,会发现
页面也添加了数据
2.4 v-on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒洋洋大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值