react和vue,angular的比较

就这几天我所了解到react情况和大家探讨一下子react的知识:

react由facebook团队维护的一套框架,已经应用在instagram网站上了,react以其独特的性能优化方案,正在被越来越多的前端工程师所接受。

angular是对dom元素的扩展,让dom元素实现一些功能,ng-show可以让元素显示隐藏,ng-repeat重复创建,ng-class切换类等,这些指令为dom添加功能同时,

也会为dom元素开销,打个比方,比如页面是一个汽车,angular做法就是为其镶嵌边框,给汽车装饰,结果就是汽车漂亮,很高大上,另一方面,我们也要开足马力

,才能开动这个汽车。react则另起炉灶,自己创建一个汽车,增加四个轱辘,添加一个发动机,这样只需很小的马力,就能驱动这个汽车。

了解完了区别之后,我们就谈一谈react的一些特点:

1.首先,react它受用的是虚拟的dom;

2.高效,react通过对dom的模拟,最大限度的减少dom的交互;

3.组件化开发,react采用组件化开发,极大限度的使组件得到复用,便于开发管理额维护;

4.适用多端,一处多发,多端适用

有了这些优点,我们就可以开发高性能的网站,什么是高性能的网站,它有以下几方面的要求:

1.减少http连接请求;

2.避免重新定向链接;

3.要把部分内容压缩;

4.避免css样式表达式;

5.减少NDS查找;

6.避免重定向链接;

7.减少大量DOM操作;

接下来说一下react的基本语法:

jsx是javascript xml的缩写形式,jsx有自己的优势和不足,优势有方便管理,不足为不能运行在浏览器当中,需要第三方转换工具;

react的语法工具和angular和vue差不多,都是{{}}的形式,但是react的执行顺序当中,它有生命周期,一般分为四个:

1.mounting这个周期是在创建阶段;

2.updating这个阶段是更新阶段;

3.render这个阶段是路由阶段,

4.unmounting这个阶段是销毁阶段;

接下来我们谈一谈react组件化开发:第一步,我们首先要按层级拆分组件,拆分组件的时候我们要遵循单一职责原则,还有就是UI和组件层级对应;

2.第二步,开发静态版本,不用state,只用props,数据放在最顶层的组件中,构建应用的顺序;

3.第三部,分析最少量state,但是完备,首先,状态越少越好维护,比如,Todo List显示总条数

这里我们就要问了,它是从父级传过来的吗?这时在确定原始产品数组;如它是从父级传过来的,那么它就是一个state;

他会经常改变吗?这是要确定用户输入的关键字,如果它经常改变,那么它应该是一个state;

它能通过其他state和props计算出来吗?这是我们要确定的复选框的状态以及过滤之后的产品数组;如果它能通过其他state和props计算出来,那他就不是一个state;

这是判断一个state的依据;

第四步:分析state应该属于那个组件,找到所有需要用到这个state的组件;

找到他们的公共祖先组件,此组件或者是它的祖先组件应该拥有这个state;

如果找不到合适的,可以创建一个新的组件,它包含了所有用到这个state的组件;

.FilterableProductTable需要用到state来展示过滤后的产品,

.SearchBar需要用到state来展示搜索内容和复选框状态

他们的共同祖先组件是FilterableProductTable

第五步:构建反向数据流,将搜索框和复选框的改变通知给FilterableProductTable从而形成了一个子组件--父组件--子组件的循环

讲完了这些,我们将上面的总结一下,

我们划分组件是按照层级划分的;

state最好尽可能的少,但是必须要完备

理解单向数据流的含义以及单向数据流的使用。

2017-06-18

时间: 2024-10-07 10:41:53

react和vue,angular的比较的相关文章

浅谈前端三大框架Angular、react、vue

每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式.一.Angular,它两个版本都是强主张的,如果你用它,必须接受以下东西: - 必须使用它的模块机制- 必须使用它的依赖注入- 必须使用它的特殊形式定义组件(这一点每个视图框架都有,难以避免) 所以Angular是带有比较强的排它性的,如果你的应用不是从头开始,而是要不断考虑是否跟其他东西集成,这些主张会带来一些困扰. 二.React,它也有一定程度的主张,

Jerry的碎碎念:SAPUI5, Angular, React和Vue

去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5还是Vue这个话题. 我们代表SAP, 向客户推荐使用UI5是基于以下六点原因: Fiori consists of a large number of UI controls aimed at Enterprise application developed by top JavaScript developers in SAP. Those UI controls p

前端三大主流框架的对比React、Vue、Angular

前端三大主流框架的对比React.Vue.Angular React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站, 并于 2013年 5 月开源.React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它.它有以下的特性: 1.声明式设计:React采用声明范式,可以轻松描述应用. 2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互. 3.灵活:React可以与已知的库或框架很好地配合. 优点: 1. 速度快:在UI渲染过程中,

前端如何入门面对传统的html,css,js,三大框架react,vue,angular?

前端入门需要学习 A基础知识部分 1.html一些新的标签,html不仅仅包括div,span 2.css3,一些新的语法,布局,例如flex弹性布局,less,sass都是啥 3.DOM树结构,盒模型(margin,padding,border)不同浏览器层次不一样,尤其IE 4.数据交互插件,ajax,fetch,axios等等,要求自己能封装出一个ajax类,供自己用 B前端环境,软件 nodejs,npm 1.了解node,npm是干什么的,为什么前端要用这些 2.自己搜索npm官网,c

React 还是 Vue: 你应该选择哪一个Web前端框架?

学还是要学的,用的多了,也就有更多的认识了,开发中遇到选择的时候也就简单起来了. 本文作者也做了总结: 如果你喜欢用(或希望能够用)模板搭建应用,请使用Vue    如果你喜欢简单和“能用就行”的东西,请使用Vue    如果你的应用需要尽可能的小和快,请使用Vue    如果你计划构建一个大型应用程序,请使用React    如果你想要一个同时适用于Web端和原生App的框架,请选择React    如果你想要最大的生态圈,请使用React    如果你已经对其中一个用得满意了,就没有必要换了

React还是Vue:你该如何选择?

React和Vue的适用范围无疑是很相似的:同样是基于组件的轻量级框架,同样专注于用户界面的视图层.同样可以用在简单的项目中,也同样可以使用全家桶扩展为复杂的应用程序. 2016年React巩固了它作为前端框架之王的地位,这一年中可以看到它在Web端和移动端的快速成长,同时稳稳领先于它的主要竞争对手Angular. 但是2016对Vue来说也是同样令人印象深刻的一年,它发布了Vue 2.0版本并且在JavaScript社区引起了巨大反响,GitHub上多出的25000颗star就是***的证明.

Vue && Angular 双向绑定检测不到对象属性的添加和删除

由于ES5的限制 Vue  && Angular 双向绑定检测不到对象属性的添加和删除  还有数组增加索引.这些改变不会触发change事件.Vue是因为实例化的时候已经把各个属性都setter和getter进去了. 两个实现的机制不一样.故解决方案也不一样. 详情查看:https://cn.vuejs.org/v2/guide/list.html#对象更改检测注意事项 Angular解决方案: 可以手动调用$apply()方法,会再自动轮询一遍 Vue解决方案: 使用vm.$set(对象

Todolist分别用React与Vue的实现与思考

源码查看: React 版的TodoList: React Todolist Vue 版的TodoList: Vue Todolist

纯前端表格控件SpreadJS V11.2新版本发布,全面支持React和Vue

SpreadJS是一款基于 HTML5 的纯 Java 电子表格和网格功能控件,在外观.功能和操作上都与 Excel 高度类似,在表格数据处理上比 Grid 类控件更为优秀,被开发人员誉为"可嵌入系统开发的在线Excel". 近日,纯前端表格控件 SpreadJS V11.2 正式推出,全面支持 React 和Vue,并提供了工作表区域偏移和 CSS 自定义分组等功能. 本次更新的主要内容有: SpreadJS 全面支持 React 和 Vue SpreadJS 现在支持与 React

bootstrap,vue,angular的区别

bootstrap不算是javascript框架,它只是一个前端的ui框架,然后有一些附带的js插件而已.angularjs是一个javascript的mvvm的框架,是为了开发有复杂业务逻辑的CRUD应用而生的 AngularJS是js框架,它定义了如何组织代码,引入了很多概念,如 service, scope, filter, directive等,它实现了双向绑定,只需要更改scope中的数据,视图会自动更新,不用再去写dom操作来更新视图,代码可以更多的关注业务逻辑:jquery只能说是