React开发实例脉冲云
来源:互联网 发布:js下拉菜单点击事件 编辑:程序博客网 时间:2024/06/06 08:19
React 起源于Facebook的内部项目,因为该公司对市场上所有JavaScript MVC框架,都不满意,就决定自己写一套,用来架设Instagram的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。由于React的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。所以,越来越多的人开始关注和使用,认为它可能是将来Web开发的主流工具。
虚拟DOM
在传统的Web应用中,我们往往会把数据的变化实时地更新到用户界面中,于是每次数据的微小变动都会引起DOM树的重新渲染。如果当前DOM结构较为复杂,频繁的操作很可能会引发性能问题。React为了解决这个问题,引入了虚拟DOM技术。根据React的设计,所有的DOM变动,都先在虚拟DOM上发生,然后再将实际发生变动的部分,反映在真实DOM上,这种算法叫做DOMdiff,它可以极大提高网页的性能表现。
虚拟DOM(virtual-dom)不仅带来了简单的UI开发逻辑,同时也带来了组件化开发的思想,所谓组件,即封装起来的具有独立功能的UI部件。React推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定义成组件,然后将小的组件通过组合或者嵌套的方式构成大的组件,然后像插入普通 HTML标签一样,在网页中插入这个大的组件。脉冲云整站都采用了React来开发,整个页面就是一个大的组件,其中包含了嵌套的大量其它组件。
在React中,可以按照界面模块自然划分的方式来组织和编写你的代码,一些重复使用的功能,可抽象为一个个通用的小组件,减少代码的冗余,这些通过一个个小组件构成的大组件,虽然组件由一些小的通用的组件构成,但是这些大组件关心自己部分的逻辑,彼此独立。
(1)可组合(Composeable):一个组件易于和其它组件一起使用,或者嵌套在另一个组件内部。如果一个组件内部创建了另一个组件,那么说父组件拥有(own)它创建的子组件,通过这个特性,一个复杂的UI可以拆分成多个简单的UI组件;
(2)可重用(Reusable):每个组件都是具有独立功能的,它可以被使用在多个UI场景;
(3)可维护(Maintainable):每个小的组件仅仅包含自身的逻辑,更容易被理解和维护;
(4)可测试(Testable):因为每个组件都是独立的,那么对于各个组件分别测试显然要比对于整个UI进行测试容易的多。
ReactDOM.render是React的最基本方法,用于将模板转为HTML语言,并插入指定的DOM节点。
JSX是React的核心组成部分,它使用XML标记的方式去直接声明界面,界面组件之间可以互相嵌套。JSX语法,像是在Javascript代码里直接写XML的语法,实质上这只是一个语法糖,使用JSX语法后,你必须要引入babel的JSX解析器,把JSX转化成JS语法,这个工作会由babel自动完成。React官方推荐使用JSX,这样组件的结构和组件之间的关系看上去更加清晰。
(1)类XML语法容易接受,结构清晰
(2)增强JS语义
(3)抽象程度高,屏蔽DOM操作,跨平台
(4)代码模块化
- React开发实例脉冲云
- 脉冲云采用了react技术
- 脉冲云之react,redux,react-redux实战演练
- 脉冲
- 脉冲
- 实例讲解基于 React+Redux 的前端开发流程
- 实例讲解基于 React+Redux 的前端开发流程
- 实例讲解基于 React+Redux 的前端开发流程
- React-Native-Android-Studio整合开发+环境配置+官方实例
- 实例讲解基于 React+Redux 的前端开发流程
- 【React Native开发】React Native For Android环境配置以及第一个实例(1)
- 【React Native开发】React Native For Android环境配置以及第一个实例
- React Native-5.React Native组件封装,组件传值实例开发
- 【React Native开发】React Native控件之ListView组件讲解以及最齐全实例(19)
- 【React Native开发】React Native控件之WebView组件详解以及实例使用(22)
- FPGA Verilog HDL 系列实例--------顺序脉冲发生器
- 脉冲云部署管理实操步骤
- 脉冲云之项目管理方法
- 查看或修改GIT客户端用户名和邮箱地址
- sqlplus登录Oracle时ORA-01017: invalid username/password; logon denied的错误
- 第一章 维度建模初步
- zookeeper运行到window系统
- 集成TBS腾讯浏览服务代替Webview显示网页
- React开发实例脉冲云
- Anaconda 和python版本问题
- springMVC流程
- oracle表空间迁移transport_tablespace的使用
- 五月SSL行业新闻回顾
- jsp连接sql数据库
- mysql索引使用
- 用static关键字修饰类
- 6 ElasticsearchTemplate和JPA中ElasticsearchRepository的选择