react 的优点
1. 声明式开发
react 是声明式的开发方式,与之对应的是命令式开发方式。之前用jquery写代码的时候,我们都是直接操作dom,这种我们称为命令式的编程。命令式编程需要我们一点点的告诉dom,它要怎么去做,怎样去挂载,即命令式编程则需要用算法来明确的指出每一步该怎么做。
react就是一个声明式的开发,声明式开发强调‘做什么’而不是‘怎么做’。react是面向数据编程的,只要把数据构建好就可以了。react会根据这个数据自动构建网站,也可以理解为,这个数据就是一张图纸,当图纸画好之后,react会自动根据图纸构建这座大厦。这种声明式开发介意节约大量的操作dom的代码。这是react的一个优势。
2. 可以与其他框架并存
使用react的时候,我们也可以使用jquery, vue 这样的框架。这是因为,在index.html文件中,react只管理id="root"里的代码的渲染,其他框架可以操作其他部分的代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>React App</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
3. 组件化
4. 单向数据流
父组件可以给子组件传值,但是子组件只可以使用这个值,绝不能改变这个值。想要改变这个值的话,只能通过调用父组件的方法去改变父组件的值。之所以设计这个单向数据流,是为了我们开发,测试方便,不容易遇到坑。
5. 视图层框架
react 负责的是数据和页面渲染之间的问题,至于组件之间怎么传值,react并不擅长。在小型项目中,父子组件通信可以通过react来完成,但在大型项目中,使用react通信对多级组件传值要经过层层组件,这样很麻烦,因此需要flux,redux这样的数据层框架来辅助我们开发。这样我们就能理解为什么react定义为视图层框架,而不是大型的完整的框架。
6. 函数式编程
我们在使用react编程时,其实写的都是一个个的函数,如 constructor,render等,都是一个个的函数。函数式编程有以下几个好处:
- 容易维护
- 更容易实现前端自动化测试
react 的优点的更多相关文章
- react的优点:兼容了dsl语法与UI的组件化管理
react的优点:兼容了dsl语法与UI的组件化管理. 组件化管理的dsl描述 UI: 虚拟dom:
- angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”
曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...
- 对react的几点质疑
现在react.js如火如荼,非常火爆,昨天抽了一天来看了下这项技术.可能就看了一天,研究的不深入,但是我在看的过程中发现来了很多疑惑,这里拿出来和那家分享讨论以此共勉. 在我接触的前端以后,让我感觉 ...
- React + Reflux
React + Reflux 渲染性能优化原理 作者:ManfredHu 链接:http://www.manfredhu.com/2016/11/08/23-reactRenderingPrinc ...
- React vs Angular 2: 冰与火之歌
黄玄 · 3 个月前 本文译自 Angular 2 versus React: There Will Be Blood ,其实之前有人翻译过,但是翻得水平有一点不忍直视,我们不希望浪费这篇好文章. 本 ...
- React快速入门教程
简介 Facebook官网介绍:React 是一个用来构建用户界面的 JavaScript 库.相当于 MVC 架构的 V 层. React 的核心思想是:封装组件,各个组件维护自己的状态和UI,当状 ...
- vue入门 vue与react和Angular的关系和区别
一.为什么学习vue.js vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/ ...
- 第一个react
个人觉着react和vue是很相似的,之前还转载过一篇介绍两个异同点的文章,那个时候还完全不懂react,现在才慢慢开始接触,所以只能总结一些个人的心得,首先自然是react的优点了,个人觉着主要有以 ...
- vue、react、angular三大框架对比 && 与jQuery的对比
前端当前最火的三大框架当属vue.react以及angular了. 但是在做项目的时候,我们怎么去选择呢? 这里做一个比较,希望大家可以有一个比较清晰的认识. vue与react vue和react ...
随机推荐
- SQL中那么多函数,Java8为什么还要提供重复的Stream方法,多此一举?
有个同学提出一个这样的疑问; 在业务系统中,数据一般都从sql中查询,类似使用where,order by,limit,聚合函数等,为什么还要用java8的Stream方法? 对这个问题,大家有什么见 ...
- 【转载】CentOS 7自动以root身份登录gnome桌面 操作系统开机后自动登录到桌面 跳过GDM
CentOS 7自动以root身份登录gnome桌面 ################### #cd /etc/gdm ]# cat custom.conf# GDM configuration st ...
- kubernetes架构及deployment应用(4)
Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. 一.master节点 Master 是 Kubernetes Cluster ...
- CrystalDiskMark v7.0.0h中文版
CrystalDiskMark v7.0.0h中文版 发布时间:2020/03/05 05:03:09作者:zhongdong CrystalDiskMark是一个轻量级高效率检测工具,所有内容整齐的 ...
- IDEA 常用快捷键列表【建议收藏】
编辑代码 快捷键 说明 Alt+Enter 导入包.自动变量命名等(万能快捷键) Ctrl+X 删除行 Ctrl+Y 删除当前行 Ctrl+D 复制行 Alt+Shift+Up/Down或Ctrl+S ...
- docker0详解
docker0:https://blog.csdn.net/kubailing/article/details/87936501 veth pair详解:https://www.cnblogs.com ...
- Linux基础命令学习记录(一)
使用频繁的Linux命令 一.文件和目录 1.cd命令 cd / 进入根目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~ 进入个人的主目录 cd - ...
- GO学习-(8) Go语言基础之数组
Go语言基础之数组 Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化. 基本语法: // 定义一个长度为3元素类型为 ...
- Go语言web开发---Beego基础
一.框架 框架:可复用的设计组件,它规定了应用的体系结构,明确了整个设计,协作各个组件之间的依赖关系,责任分配,和流程控制.通俗解释框架就是一堆代码的集合,为了提高软件的开发效率和质量,一般都会使用框 ...
- NBU Rman异机恢复Oracle
前段时间一个亿级分区表,被分割成历史表和业务表,历史表中保留15天以外的数据,每天都会从业务表中的15天外的数据copy到历史表,并删除业务表15天外的数据,逻辑也很简单,但插入历史表的where 条 ...