博客
关于我
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:mysql 5.X 报错 ERROR 1193 (HY000): Unknown system variable ‘validate_password_length‘
    查看>>
    MySQL:MySQL执行一条SQL查询语句的执行过程
    查看>>
    Mysql:SQL性能分析
    查看>>
    mysql:SQL按时间查询方法总结
    查看>>
    MySQL:什么样的字段适合加索引?什么样的字段不适合加索引
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    MySQL:某个ip连接mysql失败次数过多,导致ip锁定
    查看>>
    MySQL:索引失效场景总结
    查看>>
    Mysql:避免重复的插入数据方法汇总
    查看>>
    MyS中的IF
    查看>>
    M_Map工具箱简介及地理图形绘制
    查看>>
    m_Orchestrate learning system---二十二、html代码如何变的容易
    查看>>
    M×N 形状 numpy.ndarray 的滑动窗口
    查看>>
    m个苹果放入n个盘子问题
    查看>>
    n = 3 , while n , continue
    查看>>
    n 叉树后序遍历转换为链表问题的深入探讨
    查看>>
    N!
    查看>>
    N-Gram的基本原理
    查看>>
    n1 c语言程序,全国青少年软件编程等级考试C语言经典程序题10道七
    查看>>
    Nacos Client常用配置
    查看>>