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 ...
随机推荐
- 优麒麟使用教程第三期:Windows 平台 U 盘启动盘制作
优麒麟使用教程第三期:Windows 平台 U 盘启动盘制作 发布时间:2019-06-27 09:00:15 点击次数:2847 在前几期教程中,小编介绍了如何在虚拟机中安装和使用优麒麟,接下来,小 ...
- tuple必须加上逗号
tuple支持 空 元组 不加逗号 >>> tup4 = () tuple非空的元组必须加上逗号>>> tup4 = (55,)>>> tup4 ...
- xsos:一个在Linux上阅读SOSReport的工具
xsos:一个在Linux上阅读SOSReport的工具 时间 2019-05-23 14:36:29 51CTO 原文 http://os.51cto.com/art/201905/596889 ...
- IIS 10 设置FTP Passive Mode 固定端口
1. Run [Start] - [Server Manager] and Click [Tools] - [Internet Information Services (IIS) Manager]. ...
- Hive 安装和配置
环境准备 已安装 HDFS 和 Yarn 集群环境 Windows 已安装 MySQL 8 (开启远程连接用户权限) 安装步骤 1. 上传并解压 Hive 安装文件 将 apache-hive-3.1 ...
- 007.Python循环语句while循环嵌套
1 使用两个循环打印十行小星星 j = 0 while j<10: # 打印一行十个小星星 i = 0 while i<10: print("*",end=" ...
- 9.8-9 nice & renice
nice:调整程序运行时的优先级 nice命令是一个当程序启动时,修改程序运行优先级的命令. Linux的优先级范围是从-20(最大优先级)到19(最小优先级).优先级越高的程序占用CP ...
- wxPython开发之密码管理程序
不想记密码?密码全设置成一样担心安全?用别人程序担心密码泄露?看完本博客,开发一个属于自己的密码管理程序吧 我们用到的是python的wxPython界面库包 先来看下成果界面:简洁主题明确 要想开 ...
- Django框架中logging的使用
Django框架中logging的使用 日志是我们在项目开发中必不可少的一个环节,Python中内置的logging已经足够优秀到可以直接在项目中使用. 本文介绍了如何在DJango项目中配置日志. ...
- Python+Selenium学习笔记15 - 读取txt和csv文件
读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 d ...