angular\reac\vue总结

来源:互联网 发布:linux查看当前shell 编辑:程序博客网 时间:2024/06/08 13:18

一、react

1、框架,以它为主导进行开发的js就叫框架,angular就是框架;react就是库,只负责解决你编程中的一些痛点(如数据污染、DOM不能复用等),它支持组件化开发网站。
2、4个核心思想概念: 为的就是
(1)virtualDOM 虚拟DOM树,写的html标签不会直接到DOM树上,而是先到虚拟DOM树上,然后再到真实DOM树,好处是使DOM实现跨平台复用。而且虚拟DOM 采用的是Diff算法,在渲染DOM之前先比对之前的DOM结构,然后将不同的DOM结构渲染上去,能复用的还在复用。
(2)组件化开发,(模块化开发是从业务功能角度出发去组织代码的),从UI角度去组织代码结构。
组件有4个特性:自定义的标签(定义的组件可以像标签一样在jsx语法中使用)、高内聚的资源(组件相关的业务逻辑、样式、数据请求基本上都写在一块儿,简单说html\css\js都写在一个组件内)、独立的作用域(每个组件使用class定义,有独立的作用域,不会影响另一个组件的数据)、规范化的接口(如它要求将代码写在相应的接口中,如componentWillMount\componentDidMount\shouldComponentUpdate\componentWillUpdate…组件内提供的一套方法,规范化的接口)
组件化开发有4个特点:
可重用(每个组件像零件一样,需要的时候拼接上)
可维护(每个小组件仅仅包含自身的逻辑,更容易被理解和维护)
可测试,每个组件都是独立的,各个组件分贝测试比整个UI测试容易得多
(3)支持JSX语法,它其实就是一个语法糖。
Html 语言可以直接写在JavaScript语言之中,不加任何引号,允许HTML与JavaScript混写
(4)DataFlow 单项数据流,
和传统的MVC思想一样,也是一种组织代码结构的方式,让代码结构更加清晰,方便运维,降低耦合度。React常用的数据流思想是redux和flux
3、组件生命周期
(1)组件的生命周期分为3个状态:
Mounting:已插入真实 DOM
Updating:正在被重新渲染
Unmounting:已移出真实 DOM
组件的生命周期函数图:定义一个组件后,一次执行生命周期函数,而代码就写在生命周期函数里面:
这里写图片描述

二、angular

是设计思想比较前卫的前端开发框架。它有4大核心特性:
(1)MVC。 Model(数据模型)-Control(业务逻辑和控制逻辑)-View(视图层),好处:将代码职责切分得很清晰,代码实现模块化,便于复用,像Model和View可以到处复用。
(2)模块化。代码都挂载到module下
这里写图片描述
(3)指令系统。如ng-app\ng-model….就是指令,有自有指令,也可以自定义指令,如可以将一堆html标签定义为一个指令。
(4)双向数据绑定。
这里写图片描述
当view视图上的数据发生变化时,它希望Model数据模型上的数据也立刻发生改变;当Model发生变化时,View视图会自动更新。在html页面上,表单上的数据是容易发生变化的。

三、vue

1、概念
(1)vue也是一个数据驱动框架(减少dom操作,给数据视图自动更新),做spa页面的
(2)vue如果不做页面可以当做一个单独使用的js库,做双向数据绑定用(就是数据和视图的绑定)
(3)Vue的核心库只关注视图层,但是vue并不只关注视图,和angular一样也有指令,过滤器这些东西
(4)vue有非常强大的单文件组件。
1)就是css+html+js都写在一个.vue文件中,这样定义的组件很简洁,清晰,组件化分的很彻底,而angular中的js文件只能写js。
2)虽然react中可以写css-in-js,但是缺乏选择器功能,即便可以在js中引入css文件,但还是不方便。
vue融合了react和angular的优点,并且解决了react和angualr的痛点,它借鉴react和angular,取其优点,设计了vue框架。vue就是框架界的腾讯。
2、vue技术栈:vue2.0\vue-router\fetch\vuex
Vuex 是管理共享数据的规则

0 0