Vue的学习笔记(1)——初识vue,vue的优缺点以及和其他框架的比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihuijuan_1/article/details/87515810

1,先了解什么是MVX框架模式?

mvx 框架模式:MVC+MVP+MVVM **
1,MVC: Model模型+View视图+Controller控制器
* 1 目的是分层,让彼此的职责分开
* 2 View通过
Controller来和Model联系,ControllerviewModel的协调者,ViewModel不直接联系,基本联系都是单向的。
* 3 用户通过
Controller来操作Model**,从而改变View
2,MVP: 是从MVC演变而来
* 1都是通过Controller/Presenter负责逻辑的处理+Model提供数据+View负责显示。
* 2 在MVP中,Presenterview是没有直接关联的,通过接口进行交互,
* 3 MVP模式的框架:Riot.js
3,MVVM: Model+View+ViewModel
*1,Model:代表数据模型,用于处理数据以及业务逻辑
*2,View:代表UI视图,负责将数据模型转为UI视图
*3,ViewModelModelView无直接连接,是通过ViewModel进行数据的交互,它是一个同步ViewModel的对象,开发者只需要专注于逻辑处理,不需要手动操作DOM
* 4,View的变化会自动更新到ViewModel,ViewModel的变化也会自动同步到View上显示。
* 5,MVVM模式的框架有:Angular.js + Vue.js和Konckout+Ember.js后两种知名度较低以及是早起的框架模式。

2,Vue的概念

  • 1,vue是一套构建用户界面的渐进式框架(MVVM框架)。
  • 2,采用自底向上增量开发的设计
  • 3,目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件

3,vue的特性

  • 1,轻量级的框架
  • 2,双向数据绑定
  • 3,指令
  • 4,插件
    vue优点
  • 1简单:官方文档清晰
  • 2快速:异步批处理更新DOM
  • 3组合:用解耦的,可复用的组件组合你的 应用程序
  • 4紧凑:压缩较小,无依赖
  • 5强大:表达式不需要声明依赖的可推倒属性 (properties)
  • 6对模块友好:可通过npm,bower和duo安装
    vue缺点

4,Vue与其他框架的区别

1.与Angular.js的区别
  相同点:
* a:都支持指令,内部指令和自定义指令
* b:都支持过滤器:内置过滤器和自定义过滤器
* c:都支持双向绑定
* d:都不支持低端浏览器
  不同点:
* a:Angular学习成本高,比如增加了Dependency Injection特性,增加了依赖注入,Vue本身提供的API比较简单,直观。
* b:在性能上,Angular依赖对数据做脏检查,所以watcher越多越慢。Vue使用基于依赖追踪的观察并且使用异步队列更新,所有数据都是独立触发的。
1.与React.js的区别
相同点:
* a:React采用了JSX语法,Vue也可使用特殊文件格式
* b:中心思想相同:一切都是组件,组件可以嵌套组件
* c:都提供合理的钩子函数,可以让开发者定制
* d:都不内置Ajax,Router等功能的核心包,而是以插件的形式加载
* e:在组件开发中都支持mixins的特性。
不同点:
* a:React依赖Virtual DOM,而Vue使用DOM模板,React使用的Virtual DOM会对渲染出来的结果做脏检查
* b:vue在模板中提供了指令,过滤器等,可以非常方便的操作DOM

5,Vue的生命周期

1.什么是vue生命周期?
    Vue实例从创建到销毁的过程。
2.vue生命周期的作用是什么?
    Vue生命过程有许多事件钩子,让我们更容易形成好的逻辑
3.vue生命周期总共有几个阶段?
可分为8个:创建前/后,载入前/后,更新前/后,销毁前/后
4.第一次页面加载会触发哪几个钩子?
beforeCreate,created,beforeMount,mounted
### 6, Vue的生命周期
beforeCreate()在数据观测和初始化事件还未开始
created () 完成数据观测,属性和方法的运算,初始化事件
beforeMount()在挂载之前被调用,相关的render函数首次被调用
mounted()在el被创新的vm.$el替换,
beforeUpdate()
update()
beforeDestroy()
destroy()

7,vue实现双向数据绑定的原理:object.defineProperty()

实现双向数据绑定主要是:采用数据劫持结合发布者-订阅者模式
属性的 setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。当把一个普通js对象传给vue实例来作为它的data选项时,Vue将遍历它的属性,用Object.defineProperty()将它们转为getter/setter。用户看不到getter/setter,但是在内部它们让Vue追踪依赖,在属性被访问和修改时通知变化。
vue的数据双向绑定将MVVM作为数据绑定的入口,整合Observer,Compile和Watcher三者,通过Observer来监听model的数据变化,通过Compile来解析编译

猜你喜欢

转载自blog.csdn.net/lihuijuan_1/article/details/87515810