博客
关于我
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 不允许直接在标签内部使用逻辑判断(如 ifelse),但可以通过以下方式实现动态属性值:

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

      JSX支持两种注释方式:

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

    3. 组件的生命周期

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


    1. 实例化阶段

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

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

    2. 存在期

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

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

    3. 销毁期

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

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

    下一篇内容预览

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

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

    你可能感兴趣的文章
    mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
    查看>>
    MySQL 的instr函数
    查看>>
    MySQL 的mysql_secure_installation安全脚本执行过程介绍
    查看>>
    MySQL 的Rename Table语句
    查看>>
    MySQL 的全局锁、表锁和行锁
    查看>>
    mysql 的存储引擎介绍
    查看>>
    MySQL 的存储引擎有哪些?为什么常用InnoDB?
    查看>>
    Mysql 知识回顾总结-索引
    查看>>
    Mysql 笔记
    查看>>
    MySQL 精选 60 道面试题(含答案)
    查看>>
    mysql 索引
    查看>>
    MySQL 索引失效的 15 种场景!
    查看>>
    MySQL 索引深入解析及优化策略
    查看>>
    MySQL 索引的面试题总结
    查看>>
    mysql 索引类型以及创建
    查看>>
    MySQL 索引连环问题,你能答对几个?
    查看>>
    Mysql 索引问题集锦
    查看>>
    Mysql 纵表转换为横表
    查看>>
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>