博客
关于我
react学习总结1--基础(一)
阅读量:632 次
发布时间:2019-03-14

本文共 1821 字,大约阅读时间需要 6 分钟。

React 学习总结–基础(一)

说明

  • React 版本:15.4.1
  • react-tap-event-plugin 版本:^2.0.1

1. React 是什么?

React 是 Facebook 内部开发的一个 JavaScript 类库,专注于构建用户与浏览器之间的交互界面。他引入了一种全新的方式来处理 DOM 的更新,即不需要专门去关注数据变化时需要重新渲染哪一部分 DOM。React 可以通过最小化的 DOM 修改实现整体应用的更新。


React 的特点

React 拥有以下独特的特点:

  • 虚拟 DOM (Virtual DOM):

    React 把传统的 DOM 操作替换成由自己管理的虚拟 DOM。每次组件更新时,React 会生成新的虚拟 DOM snapshots,并对实际 DOM 进行最小化更新。

  • 单项数据流(单向数据绑定):

    React 采用单向数据流的设计,确保父组件的状态变化不会反向流到子组件,避免了大范围的状态爆炸。

  • 组件驱动发展:

    React 鼓励将 UI 的每个功能模块独立封装成一个组件,便于管理和复用。

  • 声明式编程:

    React 提供声明式的 API,使开发者可以通过简单的 JSX 就可以轻松构建复杂的 UI,再无需过多关注 DOM 的更新细节。


  • 2. JSX(JavaScript XML)

    JSX 是 React 组件内构建标签的一种 XML-style 语法,引入了 JavaScript 和 XML 的特点。虽然在不使用 JSX 的情况下 React 还能正常运行,但 JSX 可以显著提升代码的可读性和简洁性。

    JSX 与 HTML 的区别

    • 标签属性处理:

      JSX 向后兼容普通 HTML 标签属性,但推荐使用驼峰形式命名法(如 className 代替 class)。
      举例:<div className="container"></div> 与传统 HTML 的 <div class="container"></div> 有区别。

    • 动态值双引号处理:

      JSX 允许将标签的属性值直接用 JavaScript 表达式,例如:<div id={uniqueId} className={dynamicClass}"></div>。

    • 逻辑操作:

      JSX 不允许直接在标签内部使用逻辑判断(如 if 或 else),但可以通过以下方式实现动态属性值:

      • 使用三目运算符:flag ? 'true' : 'false'
      • 将逻辑判断封装到函数中调用。
    • 注释方式:

      JSX支持两种注释方式:

    • 单行注释://
    • 块注释:/* */ 或使用 JSX 内联的注释方式:<div> {/* 这是一个注释 */ } </div>

    3. 组件的生命周期

    React 组件的生命周期分为以下几个阶段:


    1. 实例化阶段

    组件第一次被用于创建实例时,会依次调用以下生命周期方法:

    • getDefaultProps:初始化组件的默认属性。
    • getInitialState:初始化状态(state)。
    • componentWillMount:在组件第一次渲染之前调用,适用于一时间间隔内不允许修改状态的场景。
    • render:生成虚拟 DOMSnapshot,默认返回 JSX 结构。
    • componentDidMount:在组件首次渲染完成后调用,适用于访问真实 DOM 或与其它框架集成。

    2. 存在期

    用户开始与组件交互后,下列方法会依次被调用:

    • componentWillReceiveProps:组件接收到新的 props 时调用,适用于状态更新前。
    • shouldComponentUpdate:决定是否需要重新渲染,返回 true 或 false。
    • componentWillUpdate:在接收到新的 props 或 state 之前调用,适用于状态更新前的事务处理。
    • render:生成新的虚拟 DOMSnapshot。
    • componentDidUpdate:在组件更新完成后调用,适用于触发 DOM 涉及操作或响应状态变化。

    3. 销毁期

    组件移除时,会调用以下方法:

    • componentWillUnmount:在组件被移除前调用,适用于释放资源或清理定时任务。

    下一篇内容预览

    • React 数据流
    • React 事件处理概述
    • 复合组件(组件间通信)
    • React DOM 操作(优化与限制)
    • React 表单基础

    转载地址:http://okvoz.baihongyu.com/

    你可能感兴趣的文章
    Python 内嵌函数:它们有什么用处?
    查看>>
    Python 内置 sum 函数 vs. for 循环性能
    查看>>
    Python 内置时间模块
    查看>>
    python 内部如何实现命名元组?
    查看>>
    python 写入json数据到数据库
    查看>>
    Python 列表删除相同的元素
    查看>>
    Python 初学者需要知道的四条建议
    查看>>
    Python 判断字符串是否包含子字符串
    查看>>
    python 判断当前时间是否为零点
    查看>>
    python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
    查看>>
    python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
    查看>>
    python 利用pyttsx3文字转语音
    查看>>
    python 利用已有Ner模型进行数据清洗合并
    查看>>
    python 到大数据开发工程师_如何成为一个大数据开发工程师?
    查看>>
    python 加密解密(base64, AES)
    查看>>
    Python 和Java 哪个更适合做自动化测试?
    查看>>
    python 图片转ico
    查看>>
    python 图片转文字、语音转文字、文字转语音保存音频并朗读
    查看>>
    python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
    查看>>
    Python 在并行进程之间共享字典
    查看>>