为什么要使用React
来源:互联网 发布:霍建华扒皮知乎 编辑:程序博客网 时间:2024/05/16 12:08
关于React的详细内容:
React前端开发入门与实战
(课程主要讲解React的基础使用技巧及实战案例。)
React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库。很人多认为 React 是 MVC 中的 V(视图)。
我们创造 React 是为了解决一个问题:构建随着时间数据不断变化的大规模应用程序。为了达到这个目标,React 采用下面两个主要的思想。
简单
仅仅只要表达出你的应用程序在任一个时间点应该长的样子,然后当底层的数据变了,React 会自动处理所有用户界面的更新。
声明式 (Declarative)
数据变化后,React 概念上与点击“刷新”按钮类似,但仅会更新变化的部分。
构建可组合的组件
React 都是关于构建可复用的组件。事实上,通过 React 你唯一要做的事情就是构建组件。得益于其良好的封装性,组件使代码复用、测试和关注分离(separation of concerns)更加简单。
给它5分钟的时间
React挑战了很多传统的知识,第一眼看上去可能很多想法有点疯狂。当你阅读这篇指南,请给它5分钟的时间;那些疯狂的想法已经帮助 Facebook 和 Instagram 从里到外创建了上千的组件了。
背景介绍:
在web应用开发的早期,构建Web应用的唯一方案就是向服务器发送请求,然后服务端响应请求并且返回一个完整的页面。从开发的角度上讲这种方法非常简单,因为开发者无须关心在浏览器端发生了什么。
像PHP这种语言,更加简化了这种开发方式。使用PHP开发功能组件也很容易,这有助于开发者重用代码,掌握应用程序的行为。开发的简单性使得PHP成为了一门非常流行的Web应用开发语言。
不过,使用这种开发方式很难打造出极佳的用户体验。因为无论每次用户想要做点什么,都需要向服务端发送请求并等待服务端的响应,这会导致用户失去在页面上所积累的状态。
为了实现更好的用户体验,人们开始开发类库,使用JavaScript在浏览器端渲染应用。这些类库使用的方法也不尽相同简单的会使用带参数的模板,复杂的就完全掌握整个应用。随着开发者在越来越大的应用中使用这些类库,应用也变得越来越难于把握,因为这些应用是一系列互相作用的事件的结果。与PHP那样传统的应用开发方式比起来,这种客户端应用很难做好。
React发源自Facebook的PHP框架XHP的一个分支。XHP作为一个PHP框架,旨在每次有请求进来时渲染整个页面。react的产生就是为了把这种重新渲染整个页面的PHP式工作流带到客户端应用中来。
React本质上只关心两件事:
1.更新DOM;
2.响应事件。
React不处理Ajax、路由和数据存储,也不规定数据组织的方式。它不是一个Model-View-Controller框架。如果非要问它是什么,他就是MVC里的“V”。React的精简允许你将它集成到各种各样的系统中 。
每次状态改变时,使用JavaScript重新渲染整个页面会非常慢,这应该归咎于读取和更新DOM的性能问题。React运用一个虚拟的DOM实现了一个非常强大的渲染系统,在React中对DOM只更新不读取。
工作状态:
React以渲染函数为基础。这些函数读入当前的状态,将其转换为目标页面上的一个虚拟表现。只要React被告知状态有变化,他就会重新运行这些函数,计算出页面的一个新的虚拟表现,接着自动把结果转换成必要的DOM更新来反映新的表现。
这种方式看上去应该比通常的JavaScript方案——按需要更新每一个元素——要慢,但是React确实是这么做的:它使用了非常高效的算法,计算出虚拟页面当前版本和新版间的差异,基于这些差异对DOM进行必要的最少更新。React赢就赢在了最小化了重绘,并且避免了不必要的DOM操作,这两点都是公认的性能瓶颈。
教学大纲
简介:
React 是一个用于构建用户界面的 JavaScript 库,主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。由于 React 拥有较高的性能,代码逻辑非常简单,越来越多的开发者开始关注和使用它。
讲师介绍:
何一鸣,花名承玉,2010年硕士毕业后加入淘宝,期间负责前端框架 KISSY 以及一些基础类库的开发和维护,2014 年底转入蚂蚁金服终端技术组,构建基于 React 的全新前端架构: 包括服务于中后台的 antd,服务于无线业务的 antd-mobile,应用架构 roof/dva,构建工具 atool-build 等。目前正和小组成员一起维护优化现有架构以及研发服务于更大范围开发者的支付宝小程序。
课时列表:
课时1:1.React课程介绍 01:28
课时2:2.React是什么 04:42
课时3:3.为什么要使用react 03:54
课时4:4.React基础知识 —— JSX 07:03
课时5:5.React基础知识——事件和组合 06:33
课时6:6.React基础知识——属性状态 04:07
课时7:7.React基础知识——Mixin 和 表单 07:10
课时8:8.React基础知识——Ref和API 11:55
课时9:9.一步一步搭建React-应用 14:15
课时10:10.使用React构建复杂页面 05:19
课程目标
- 掌握前端框架React开发技术
适合人群
- 前端开发者
阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场)
- 为什么要使用React
- React-为什么要使用虚拟DOM
- 为什么 react 中要使用 redux
- 为什么使用React
- 为什么使用React
- Reactjs react-router 为什么使用 React?
- 为什么要选择react
- 为什么我们要造React?
- React中一个没人能解释清楚的问题——为什么要使用Virtual DOM
- 为什么我要从 Angular 转向 React
- React为什么要尽量避免操作DOM
- React虚拟DOM的原理&&为什么使用虚拟DOM
- 【React】《Why did we build React?》 我们为什么要创建React-译文
- 为什么 React Native
- 问 为什么react的组件要super(props)
- React常用插件介绍:React中我们为什么要用 redux-thunk,它能做什么?
- React技术栈之为什么选择react
- React使用
- 用align-self: baseline 来解决✘和文字对不齐的问题
- 马云乌镇对话全记录:未来属于创造力、想象力
- 【Struts2】6.整理
- 智能TV开发笔记(一)
- Reinforcement Learning——DP
- 为什么要使用React
- 清晰明了搞懂 call、apply、bind 的区别
- 创建包含多个子网的虚拟网络
- NIO的前世今生
- 练习(二)
- java蓝桥杯:外星日历
- css input checkbox和radio样式美化
- visualvm 远程监控Linux下的tomcat
- 对向量求导