版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
React概览React的核心思想是:封装组件,各个组件维护自己的状态和UI,当状态变更,自动重新渲染整个组件。
基于这种方式的一个直观感受就是我们不再需要不厌其烦地来回查找某个DOM元素,然后操作DOM去更改UI。React大体包含下面这些概念:
组件JSXVirtualDOMDataFlow
大纲开发环境配置JSX组件生命周期事件和属性DOM组合组件组件间通信Mixins表单打包发布学习资源开发环境配置npminit创建项目安装Webpack:npminstall–gwebpackWebpack使用webpack.config.js的配置文件package.json配置文件.babelrcbabel配置文件js目录结构:JSXJSX简单来说就是为了把HTML模板直接嵌入到JS代码里面,这样就做到了模板和组件关联,但是JS不支持这种包含HTML的语法,所以需要通过工具将JSX编译输出成JS代码才能使用。组件React组件两个核心概念props就是组件的属性,由外部通过JSX属性传入设置完成。state是组件的当前状态,可以把组件简单看成一个“状态机”,根据状态state呈现不同的UI展示。一旦状态(数据)更改,组件就会自动调用render重新渲染UI;可以通过this.setState方法解法组件生命周期一个组件类必须由调用React.createClass创建,并且提供一个render方法以及其他可选的生命周期函数、组件相关的事件或方法定义。组件分为三个阶段:实例化、运行时及销会&清理期首次使用一个组件时,以下这些方法依次被调用:(实例化)getDefaultPropsgetInitialStatecomponentWillMountrendercomponentDidMount当状态改变,以下这些方法依次被调用:(运行时)componentWillReceivePropsshouldComponentUpdatecomponentWillUpdaterendercomponentDidUpdate销毁,当该组件使用完成,componentWillUnmount方法将会被调用。(销毁)组件生命周期之实例化getDefaultProps对于组件,这个方法只会被调用一次,对于父组件指定的props属性,默认设置为该组件的props值。getInitialState这个方法只会调用有次,用于初始化组件的state。componentWillMount只会调用一次,在render(渲染)之前调用,这也是在render方法调用前修改组件state的最后一次机会renderrender方法是必须的。这里会创建虚拟DOM。
componentDidMount在render方法成功调用并且真实的DOM已渲染后,可以在componentDidMount内部通过this.getDOMNode()来获取相应DOM节点。组件生命周期之运行时componentWillReceiveProps组件在接收到新的props时候调用,在初始化渲染时不会调用;一般是通过父组件来更改propsshouldComponentUpdate在接收到新的props或state时在渲染之前调用,如果该方法返回false,则render()将不会执行。componentWillUpdate在接收到新的props或state之前将被调用。componentDidUpdate在渲染成功后将被调用,和componentDidMount方法类似。组件生命周期之销毁&清理期componentWillUnmount在组件从DOM中移除的时候被调用;比如在componentDidMount执行了setInterval()方法,在移除组件前可以通过componentWillUnmount方法来clearInterval()方法来结束任务事件和属性之事件剪贴板事件onCopyonCoutonPaste键盘事件onKeyDownonKeyPressonKeyUp焦点事件onFocusonBlur表单事件onChangeonInputonSubmit鼠标事件onClickonContextMenuonDoubleClickonDragonDragEndonDragEnteronDragExitonDragLeaveonDragOveronDragStartonDroponMouseDownonMouseEnteronMouseLeaveonMouseMoveonMouseOutonMouseOveronMouseUp触控事件onTouchCancelonTouchEndonTouchMoveonTouchStartUI事件onScroll滚轮事件onWheel事件和属性之属性HTML的属性和标签在React中大部分都被支持class在React中使用className替换
DOM操作findDOMNode()当组件加载到页面之后,可以通过ReactDOM.findDOMNode()方法拿到组件对应的DOM元素Refs通过在DOM元素上面设置一个ref属性指定一个名称,然后通过
来访问对应的DOM元素。组合组件使用组件的目的就是通过构建模块化的组件,相互组合组件最后组装成一个复杂的应用。组件间通信父子组件间通信这种情况下很简单,就是通过props属性传递,在父组件设置子组件的属性,所以子组件就可以通过props或者事件绑定访问到父组件的方法,这样就搭建起了父子组件间通信的桥梁。MixinsMixins虽然组件的原则就是模块化,彼此之间相互独立,但是有时候不同的组件之间可能会共用一些功能,共享一部分代码。所以React提供了mixins这种方式来处理这种问题。Mixin就是用来定义一些方法,使用这个mixin的组件能够自由的使用这些方法(就像在组件中定义的一样),所以mixin相当于组件的一个扩展,在mixin中也能定义“生命周期”方法。表单状态属性表单元素有这么几种属于状态的属性value,对应<input>和<textarea>所有checked,对应类型为checkbox和radio的<input>所有selected,对应<option>所有受控组件对于设置了上面提到的对应“状态属性“值的表单元素就是受控表单组件,比如:非受控组件和受控组件相对,如果表单元素没有设置自己的“状态属性”,或者属性值设置为null,这时候就是非受控组件。打包发布使用webpack–p进行打包资源React官网https://facebook.github.io/react/index.htmlReact中文社区:/React中文文档中文文档地址GitHub地址/reactjs-cn/react-docs阮一峰的"React入门实例教程"/blog/2015/03/react.html极客学院整理的文档/project/react/React入门教程http://hulufei.gitbooks.io/react-tutorial/
React
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常见的植物(练习)(解析版)
- 自我管理的8个好习惯
- 备考2024河南省摄影师资格证考试真题练习试卷A卷附答案
- 大学物理第九章磁场
- 科技创新论坛筹备方案
- 酒店开业推广活动策划方案
- 中级经济师考试《工商管理》真题冲刺模拟(含标准答案)
- 人员培训成果
- 高层建筑火灾的安全疏散计划
- 高中化学复习导图
- 湘少版五年级下册英语全期教案
- 高速公路收费站常见特情处理办法课件
- 《行政许可法培训》课件
- 颅内占位性的病变护理查房课件
- 山东省烟台市芝罘区(五四制)2023-2024学年九年级上学期期末考试物理试题
- DB14∕T 1851-2019 中华鼢鼠防治技术规程
- 2024年风电铸件行业市场研究报告
- 中耳胆脂瘤的护理查房
- 财务科廉洁风险点及防控措施【15篇】
- 六年级上册道德与法治《期中考试试卷》含答案解析
- 物联网的数据传输技术
评论
0/150
提交评论