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
react和vue,angular的比较的更多相关文章
- Angular React 和 Vue的比较
Angular(1&2),React,Vue对比 一 数据流 数据绑定 Angular 使用双向绑定即:界面的操作能实时反映到数据,数据的变更能实时展现到界面. 实现原理: $scope变量中 ...
- Jerry的碎碎念:SAPUI5, Angular, React和Vue
去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5还是Vue这个话题. 我们代表SAP, 向客户推荐使用UI5是基于以下六点 ...
- Vue(MVVM)、React(MVVM)、Angular(MVC)对比
前言 昨天阿里内推电面一面,面试官了解到项目中用过Vue,就问为什么前端框架使用Vue而不适用其他的框架,当时就懵了.因为只用过Vue,不了解其他两个框架,今天就赶紧去了解一下他们之间的区别.大家发现 ...
- 技术趋势:React vs Vue vs Angular
React.Vue 和 Angular 这两年发展状况如何?2019 年哪个技术最值得学习? 前几天 Medium 上有一位作者发表了一篇关于 React.Vue 和 Angular 技术趋势的文章( ...
- 前端框架Angular、react、vue在github上的数据统计-2018-05
2018年5月31日09:15:45 突然想看看几个前端框架的数量,然后就截图了如下数据: 分析: react关注.收藏.Fork都高vue一些, 但相差不大 angular比较奇葩,收藏只有二者一半 ...
- 【转】前端框架天下三分:Angular React 和 Vue的比较
前端框架天下三分:Angular React 和 Vue的比较 原文链接:http://blog.csdn.net/haoshidai/article/details/52346865 前端这几年的技 ...
- 【repost】前端学习总结(二十三)——前端框架天下三分:Angular React 和 Vue的比较
目录(?)[+] 前端这几年的技术发展很快,细分下来,主要可以分成四个方面: 1.开发语言技术,主要是ES6&7,coffeescript,typescript等: 2.开发框架,如Ang ...
- 浅谈前端三大框架Angular、react、vue
每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式. 一.Angular,它两个版本都是强主张的,如果你用它,必 ...
- 2017 年比较 Angular、React、Vue 三剑客(转载)
为 web 应用选择 JavaScript 开发框架是一件很费脑筋的事.现如今 Angular 和 React 非常流行,并且最近出现的新贵 VueJS 同样博得了很多人的关注.更重要的是,这只是一些 ...
- 前端三大主流框架的对比React、Vue、Angular
前端三大主流框架的对比React.Vue.Angular React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站, 并于 2013年 5 月开源.React 拥有较高的 ...
随机推荐
- windows系统下修改键盘按键的映射
待解决的问题: 在windows系统下,在某些情况下,我们感觉键盘的按键位置不是特别方便,因此想重新映射它. 比如:要实现如下重新映射(我就有这样的需求),怎么办? Esc键 修改为 CapsLock ...
- 危险代码:如何使用Unsafe操作内存中的Java类和对象
危险代码:如何使用Unsafe操作内存中的Java类和对象—Part1 危险代码:如何使用Unsafe操作内存中的Java类和对象—Part2 危险代码:如何使用Unsafe操作内存中的Java类和对 ...
- Oracle 如何对中文字段进行排序
Oracle 如何对中文字段进行排序 oracle中drop.delete和truncate的区别 oracle里的执行计划-查看
- SpringMVC工作原理 : HandlerMapping和HandlerAdapter
一.HandlerMapping 作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecu ...
- Spring的ApplicationEvent实现
原理:ApplicationContextAware接口提供了publishEvent方法,实现了Observe(观察者)设计模式的传播机制,实现了对bean的传播.通过ApplicationCont ...
- oracle客户端instantclient如何配置
下载下来的instantclient-basic-nt-11.2.0.4.0.zip文件解压缩D:\Program Files\instantclient_11_2(可以选择自己的目录) (1) 增加 ...
- C语言函数strstr
函数原型: extern char *strstr(char *str1, const char *str2); 语法: * strstr(str1,str2) 参数: str1: 被查找目标 ...
- ubuntu安装python3.6
环境: ubuntu18.04 64位,python3.6.5 安装过程 1.打开终端 首先创建安装目录, sudo mkdir /usr/local/python3 2.然后下载安装包,解压,并且进 ...
- HTML01
1.什么是HTML?(Hyper Text Markup Language:超文本标记语言) 超文本:功能比普通文本更加强大 标记语言:使用一组标签对内容进行描述的一门语言(它不是编程语言) 2.为什 ...
- 关于0x3f3f3f3f
发现有人把无穷大设成0x3f3f3f3f,好像还真不是随便设的. 0x3f3f3f3f比10^9大一点,比一般数据范围大: 乘2之后比2147483467小,满足正无穷加正无穷还是正无穷: 每个字节都 ...