响应式系统与 React | 青训营笔记

48 阅读3分钟

定义

React 是一个用于构建用户界面的 JavaScript 库。

  • 声明: React 使创建交互式 UI 变得轻松。为应用程序中的每个状态设计简单的视图,React 将在数据更改时有效地更新和渲染正确的组件。声明性视图使代码更可预测、更易于理解且更易于调试。
  • 基于组件: 构建管理其自身状态的封装组件,然后组合它们以创建复杂的 UI。由于组件逻辑是用 JavaScript 而不是模板编写的,因此可以轻松地通过应用传递丰富的数据,并将状态排除在 DOM 之外。
  • 一次学习,随处书写: 可以在 React 中开发新功能,而无需重写现有代码。React 还可以使用 Node 在服务器上渲染,并使用 React Native 为移动应用程序提供支持。

jsx语法规则

  • 定义虚拟DOM,不能使用“”
  • 标签中混入JS表达式的时候使用{}
  • 样式的类名指定不要使用class,使用className
  • 内敛样式要使用双大括号包裹
  • 不能有多个根标签,只能有一个跟标签
  • 标签必须闭合

模块与组件、模块化与组件化的理解

模块

理解:向外提供特定功能的js程序, 一般就是一个js文件 为什么要拆成模块:随着业务逻辑增加,代码越来越多且复杂。 作用:复用js, 简化js的编写, 提高js运行效率

组件

理解:用来实现局部功能效果的代码和资源的集合(html/css/js/image等等) 为什么要用组件: 一个界面的功能更复杂 作用:复用编码, 简化项目编码, 提高运行效率

模块化

当应用的js都以模块来编写的, 这个应用就是一个模块化的应用

组件化

当应用是以多组件的方式实现, 这个应用就是一个组件化的应用

React组件生命周期有几个阶段

初始渲染阶段:这是组件即将开始其生命之旅并进入 DOM 的阶段。

getDefaultProps:获取实例的默认属性 getInitialState:获取每个实例的初始化状态 componentWillMount:组件即将被装载、渲染到页面上 render:组件在这里生成虚拟的 DOM 节点 componentDidMount:组件真正在被装载之后

更新阶段:一旦组件被添加到 DOM,它只有在 prop 或状态发生变化时才可能更新和重新渲染。这些只发生在这个阶段。

componentWillReceiveProps:组件将要接收到属性的时候调用 shouldComponentUpdate:组件接受到新属性或者新状态的时候(可以返回 false,接收数据后不更新,阻止 render 调用,后面的函数不会被继续执行了) componentWillUpdate:组件即将更新不能修改属性和状态 render:组件重新描绘 componentDidUpdate:组件已经更新

卸载阶段:这是组件生命周期的最后阶段,组件被销毁并从 DOM 中删除。

componentWillUnmount:组件即将销毁

React 组件的生命周期方法

  • componentWillMount() – 在渲染之前执行,在客户端和服务器端都会执行。
  • componentDidMount() – 仅在第一次渲染后在客户端执行。
  • componentWillReceiveProps() – 当从父类接收到 props 并且在调用另一个渲染器之前调用。
  • shouldComponentUpdate() – 根据特定条件返回 true 或 false。如果你希望更新组件,请返回true ,不想更新组件则返回 false就会阻止render渲染。默认情况下,它返回 true。
  • componentWillUpdate() – 在 DOM 中进行渲染之前调用。
  • componentDidUpdate() – 在渲染发生后立即调用。
  • componentWillUnmount() – 从 DOM 卸载组件后调用。用于清理内存空间。