React快速入门教程


Posted in Javascript onJanuary 17, 2017

简介

Facebook官网介绍:React 是一个用来构建用户界面的 JavaScript 库。相当于 MVC 架构的 V 层。

React 的核心思想是:封装组件,各个组件维护自己的状态和UI,当状态变更,自动重新渲染整个组件。

React的优点(React为什么这么火?):

React快速入门教程

组成

React构建界面的三要点:组件、路由、状态管理。

React 的核心内容:JSX和虚拟 DOM。

一个最基本的 React 组件由数据和JSX两个主要部分构成,我们先来看看数据。

React快速入门教程

这是一个简单完整的React组件(类),props 主要作用是提供数据来源,可以简单的理解为 props 就是构造函数的参数。 state 唯一的作用是控制组件的表现,用来存放会随着交互变化状态,比如开关状态等。JSX 做的事情就是根据 state 和 props 中的值,结合一些视图层面的逻辑,输出对应的 DOM 结构。

在组件内部,可以通过this.props来访问props

React的一大创新,就是把每一个组件都看成是一个状态机,组件内部通过state来维护组件状态的变化,这也是state唯一的作用。

React快速入门教程

传统 Web App:是直接和DOM交互,由App来控制DOM的构建和渲染、元素属性的读写、事件的注册和销毁等。

React Web App:是通过虚拟DOM来交互。虚拟DOM是在DOM的基础上建立了一个抽象层,我们对数据和状态所做的任何改动,都会被自动且高效的同步到虚拟DOM,最后再批量同步到DOM中。(渲染效率高)

React目前支持的事件列表:

React快速入门教程

生命周期

大体可以分为三个过程:初始化、更新和销毁,在组件生命周期中,随着组件的props或者state发生改变,它的虚拟DOM和DOM表现也将有相应的变化。

一、初始化:

React快速入门教程

解析:

  1. 组件类在声明时,会先调用 getDefaultProps() 方法来获取默认props值,这个方法会且只会在声明组件类时调用一次,这一点需要注意,它返回的默认props由所有实例共享。
  2. 在组件被实例化之前,会先调用一次实例方法 getInitialState() 方法,用于获取这个组件的初始state。
  3. 实例化之后就是渲染,componentWillMount方法会在生成虚拟DOM之前被调用,你可以在这里对组件的渲染做一些准备工作,比如计算目标容器尺寸然后修改组件自身的尺寸以适应目标容器等等。
  4. 接下来就是渲染工作,在这里你会创建一个虚拟DOM用来表示组件的结构。

对于一个组件来说,render 是唯一一个必须的方法。render方法需要满足这几点:

    1)只能通过 this.props 或 this.state 访问数据

    2)只能出现一个顶级组件

    3)可以返回 null、false 或任何 React 组件

    4)不能对 props、state 或 DOM 进行修改

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
innerText和textContent对比及使用介绍
Feb 27 Javascript
使用JS画图之点、线、面
Jan 12 Javascript
jquery简单的弹出层浮动层代码
Apr 27 Javascript
响应式表格之固定表头的简单实现
Aug 26 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
基于Vue.js 2.0实现百度搜索框效果
Dec 28 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
微信小程序实现星星评分效果
Nov 01 Javascript
javascript操作cookie
Jan 17 #Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 #Javascript
微信小程序 网络请求(post请求,get请求)
Jan 17 #Javascript
详解微信小程序开发之城市选择器 城市切换
Jan 17 #Javascript
微信小程序实战之运维小项目
Jan 17 #Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 #Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 #Javascript
You might like
十天学会php之第二天
2006/10/09 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
python模块之time模块(实例讲解)
2017/09/13 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
财务会计专业毕业生自荐信
2013/10/02 职场文书
毕业生找工作的自我评价
2013/10/18 职场文书
党员剖析材料范文
2014/12/18 职场文书
端午节寄语2015
2015/03/23 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Python+Appium自动化测试的实战
2021/06/30 Python
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL