React是什么

React是如今(2015年)最热门的前端技术。

在React中。一切皆组件。

A JavaScript library for building user interfaces

React不过用于构建用户界面的js库(MVC中的V),不是完整的MV*框架,所以和Angular、Backbone和Ember没有可比性。

使用jQuery操作DOM的日子或许会成为过去。


React的特点

(1) 不过UI

React不过MVC中的V。

(2) 虚拟DOM

React为了更高超的性能而使用虚拟DOM作为其不同的实现。

它同一时候也可以由服务端Node.js渲染 - 而不须要过重的浏览器DOM支持。

虚拟DOM(virtual-dom)不仅带来了简单的UI开发逻辑,同一时候也带来了组件化开发的思想,所谓组件,即封装起来的具有独立功能的UI部件。

React推荐以组件的方式去又一次思考UI构成,将UI上每个功能相对独立的模块定义成组件。然后将小的组件通过组合或者嵌套的方式构成大的组件,终于完毕总体UI的构建。

(3) 单向数据流

React实现了单向响应的数据流,从而降低了反复代码。这也是它为什么比传统数据绑定更简单。


React在解决什么问题

在Web开发中,我们总须要将变化的数据实时反应到UI上,这时就须要对DOM进行操作。而 复杂或频繁的DOM操作一般是性能瓶颈产生的原因 (怎样进行高性能的复杂DOM操作一般是衡量一个前端开发人员技能的重要指标)。React为此引入了 虚拟DOM(Virtual DOM) 的机制:在浏览器端用Javascript实现了一套DOM API。基于React进行开发时全部的DOM构造都是通过虚拟DOM进行。每当数据变化时,React都会又一次构建整个DOM树。然后React将当前整个DOM树和上一次的DOM树进行对照,得到DOM结构的差别,然后只将须要变化的部分进行实际的浏览器DOM更新。并且React可以批处理虚拟DOM的刷新,在一个事件循环(Event Loop)内的两次数据变化会被合并,比如你连续的先将节点内容从A变成B,然后又从B变成A,React会觉得UI不发生不论什么变化。而假设通过手动控制,这样的逻辑一般是极其复杂的。虽然每一次都须要构造完整的虚拟DOM树,可是由于虚拟DOM是内存数据,性能是极高的,而对实际DOM进行操作的不过Diff部分,因而能达到提高性能的目的。这样。在保证性能的同一时候。开发人员将不再须要关注某个数据的变化怎样更新到一个或多个详细的DOM元素。而只须要关心在随意一个数据状态下。整个界面是怎样Render的。


【React】初识React的更多相关文章

  1. React 初识

    React We built React to solve one problem: building large applications with data that changes over t ...

  2. React初识整理(五)--Redux和Flux(解决状态传递问题)

    Flux 1.引入:在React的应⽤中,状态管理是⼀个⾮常重要的⼯作.我们不会直接对DOM节点进⾏操作,⽽是通过将数据设置给state,由state来同步UI,这种⽅式有个潜在的问题,每个组件都有独 ...

  3. React初识整理(四)--React Router(路由)

    官网:https://reacttraining.com/react-router 后端路由:主要做路径和方法的匹配,从而从后台获取相应的数据 前端路由:用于路径和组件的匹配,从而实现组件的切换. 如 ...

  4. 前端笔记之React(一)初识React&组件&JSX语法

    一.React项目起步配置 官网:https://reactjs.org/ 文档:https://reactjs.org/docs/hello-world.html 中文:http://react.c ...

  5. React学习笔记-1-什么是react,react环境搭建以及第一个react实例

    什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...

  6. 小谈React、React Native、React Web

    React有三个东西,React JS 前端Web框架,React Native 移动终端Hybrid框架,React Web是一个源码转换工具(React Native 转 Web,并之所以特别提出 ...

  7. React的React Native

    React的React Native React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React ...

  8. React Navigation & React Native & React Native Navigation

    React Navigation & React Native & React Native Navigation React Navigation https://facebook. ...

  9. 重谈react优势——react技术栈回顾

    react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优 ...

  10. React 与 React Native 底层共识:React 是什么

    此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React 与 React Native 结合学习的方法,此小节主要介绍 React 的底层原理与 ...

随机推荐

  1. sublime 字体设置

    安装完成sublime之后,推荐一种比较舒服的字体设置,个人习惯.配置步骤如下,打开sublime-->Preferences-->Settings - User 2.复制以下内容粘贴,并 ...

  2. ls 大全

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  3. intellij idea 中文 汉化包 韩梦飞沙

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 汉化包 百度云盘 下载地址: https://pan.baidu.com/s/1hs6B ...

  4. PHP 笔记——Array 数组

    要点 说明 数组构成 数组是由一个或多个数组元素组成的 数组元素 每个数组元素由键(Key)和值(Value)构成 键 元素的识别名称,也被称为数组下标 值 元素的内容 映射 键 和 值 之间存在一种 ...

  5. Mac 配置几个环境变量

    终端    open -t ~/.bash_profile  打开.bash_profile export PATH=${PATH}:/Users/maxinliang/Android/sdk/pla ...

  6. Spring整合Mybatis案例,献给初学的朋友

    今天我们来学习Spring整合Mybatis. 开发环境:Ide:MyEclipse 2017 CI JDK:1.8 首先我们简单的认识下这两个框架 1.Mybatis MyBatis是一个支持普通S ...

  7. Educational Codeforces Round 11 A. Co-prime Array 水题

    A. Co-prime Array 题目连接: http://www.codeforces.com/contest/660/problem/A Description You are given an ...

  8. Codeforces Round #304 (Div. 2) C. Soldier and Cards 水题

    C. Soldier and Cards Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/546 ...

  9. 厄拉多塞筛法和普通方法求素数表(python实现)

    厄拉多赛筛法(sieve of Eratosthenes): 想要得到一个不大于N的数所有素数,可以先找到不超过根号N的所有素数,设2 = p1 < p2 < ......<pk ≤ ...

  10. Xcode常用插件推荐

    1.Xcode插件管理工具–Alcatraz的安装 Alcatraz是针对Xcode的一款插件管理器,通过Alcatraz可以非常方便的管理插件,包括安装.删除.升级等操作. 官方网站 安装方法一(推 ...