REACT基础|青训营笔记

82 阅读3分钟

#青训营笔记 困扰WEB性能的两大问题包括: 等待资源加载时间+大部分情况下浏览器单线程执行。

REACT 介绍

React是一个流行的JavaScript库,用于构建用户界面。它是由Facebook创建的,现在由一个开发者社区维护。React允许网络开发者创建可重复使用的UI组件,可以在多个页面或项目中使用。

该库的理念集中在组件的概念上:可以重复使用、组合和独立管理的小块代码。这也就是说,与其把整个网站建成一个巨大的页面,React鼓励开发者把它分解成更小的部分,每个部分都有自己的功能。

React的另一个关键好处是它的虚拟DOM(文档对象模型),这有助于提高网络应用的性能,因为虚拟DOM可以快速地只更新页面中需要改变的部分。这也可以通过使其反应更灵敏来增强用户体验。

React也有一个庞大的附加组件和工具的生态系统,开发者可以用它来进一步开发你的网络应用。其中一个工具是Redux,它用于管理应用程序中的全局状态。

总的来说,由于React的模块化特性、性能和庞大的开发者社区,它是构建现代和互动网络应用的一个不二选择。

REACT特点

  • ->声明式编程
  • ->组件化
  • ->跨平台编写 react是用JavaScript构建快速响应的大型WEB应用程序的首选之一。 REACT:scheduler调度器;reconciler协调器;renderer渲染器(管理一棵);

REACT的error boundary类如下

class ErrorBoundary extends React.Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  static getDerivedStateFromError(error) {    // Update state so the next render will show the fallback UI.    return { hasError: true };  }
  componentDidCatch(error, errorInfo) {    // You can also log the error to an error reporting service    logErrorToMyService(error, errorInfo);  }
  render() {
    if (this.state.hasError) {      // You can render any custom fallback UI      return <h1>Something went wrong.</h1>;    }
    return this.props.children; 
  }
}

之后可用这段代码为常规模块

<ErrorBoundary>
  <MyWidget />
</ErrorBoundary>

REACT中的一些类实例

  1. Component: 这是React的基类,所有其他类的组件都继承于此。它包含很多有用的生命周期方法,如render、componentDidMount和componentWillUnmount。

  2. PureComponent: 这与Component类似,但它自动实现了一个shouldComponentUpdate方法,对props和状态进行浅层比较,以确定是否需要重新渲染。这可以帮助提高大型应用的性能。

  3. Context.Consumer: 这是一个类组件,允许你从一个上下文提供者那里消费数据。它提供一个函数作为子函数,接收上下文的当前值并返回一个React元素。

4.Context.Provider: 这是一个类组件,通过一个上下文对象向所有的子组件提供数据。它接受一个值道具,可以是任何JavaScript数据类型。

  1. Fragment: 这是一个类组件,它允许你在不引入额外的DOM元素的情况下将一个子列表分组。它可以用来从一个组件中返回多个元素。

6.memo: 这是一个高阶组件,将组件渲染的结果备忘化。它类似于PureComponent,只是它可以应用于任何功能组件而不仅仅是类组件。