react类组件的 钩子--生命周期

简介: react类组件的 钩子--生命周期

1. 前言

  1. react 版本更新一些钩子也被废弃了,总结下吧

2. 表格清晰明了

钩子 功能
constructor(props) 组件创建时调用,用于初始化组件的状态和绑定事件处理方法
static getDerivedStateFromProps(props, state) 组件在更新前调用,可以根据 props 来更新 state 的值。这个函数必须返回一个对象来更新状态,或者返回 null 表示不需要更新状态。
shouldComponentUpdate(nextProps, nextState) 组件在更新前调用,返回一个布尔值,表示是否需要重新渲染组件。如果返回 false,则不会触发 render 函数和后续的生命周期函数。
render() 组件渲染时调用,必须返回一个 React 元素(或 null)
componentDidMount() 组件渲染完成后调用,可以在这里进行网络请求、订阅事件等操作
getSnapshotBeforeUpdate(prevProps, prevState) 组件在更新前调用,返回一个值,这个值会作为第三个参数传递给 componentDidUpdate 函数,用来做一些组件更新后的操作
componentDidUpdate(prevProps, prevState, snapshot) 组件更新完成后调用,可以在这里进行一些 DOM 操作或其他副作用操作
componentWillUnmount() 组件被卸载时调用,可以在这里进行一些清理操作,比如清除定时器、取消订阅等

3. 外加代码 如虎添翼

import React from 'react';
class Friend extends React.Component {
  // 组件创建时调用,用于初始化组件的状态和绑定事件处理方法。
  constructor(props) {
    super(props);
    this.state = { count: 1 };
    this.handleClick = this.handleClick.bind(this);
  }
  handleClick() {
    console.log("点击----");
    this.setState({ count: this.state.count + 1 });
  }
// 组件在更新前调用,可以根据 props 来更新 state 的值。
//这个函数必须返回一个对象来更新状态,或者返回 null 表示不需要更新状态。
  // static getDerivedStateFromProps(props, state) {
  //   if (props.count !== state.count) {
  //     return { count: props.count };
  //   }
  //   return null;
  // }
  // 组件在更新前调用,返回一个布尔值,表示是否需要重新渲染组件。
  //如果返回 false,则不会触发 render 函数和后续的生命周期函数。
  shouldComponentUpdate(nextProps, nextState) {
    return nextState.count !== this.state.count;
  }
  // 组件渲染完成后调用,可以在这里进行网络请求、订阅事件等操作。
  componentDidMount() {
    console.log('Component mounted------2');
  }
  // 组件在更新前调用,返回一个值,这个值会作为第三个参数传递给 
  // componentDidUpdate 函数,用来做一些组件更新后的操作。
  // getSnapshotBeforeUpdate(prevProps, prevState) {
  //   console.log('Component about to update');
  //   return { message: 'Snapshot!' };
  // }
  // :组件更新完成后调用,可以在这里进行一些 DOM 操作或其他副作用操作。
  componentDidUpdate(prevProps, prevState, snapshot) {
    console.log('Component updated');
    console.log('Snapshot:', snapshot);
  }
  // 组件被卸载时调用,可以在这里进行一些清理操作,比如清除定时器、取消订阅等。
  componentWillUnmount() {
    console.log('Component unmounted');
  }
  render() {
    // 组件渲染时调用,必须返回一个 React 元素(或 null)
    console.log("render ---------1");
    return (
      <div>
        <h1>朋友圈</h1>
        <h1>Count: {this.state.count}</h1>
        <button onClick={this.handleClick}>Click me!</button>
      </div>
    );
  }
}
export default Friend

参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
19天前
|
前端开发 UED 开发者
React 悬浮按钮组件 FloatingActionButton
悬浮按钮(FAB)是常见的UI元素,用于提供突出的操作。本文介绍如何在React中使用Material-UI创建美观的FAB组件,涵盖基本概念、实现方法及常见问题解决。通过代码示例和优化技巧,帮助开发者提升用户体验,确保按钮位置、颜色、交互反馈等方面的表现,同时避免无障碍性和性能问题。
117 80
|
27天前
|
前端开发 JavaScript 开发者
React 按钮组件 Button
本文介绍了 React 中按钮组件的基础概念,包括基本的 `&lt;button&gt;` 元素和自定义组件。详细探讨了事件处理、参数传递、状态管理、样式设置和可访问性优化等常见问题及其解决方案,并提供了代码示例。帮助开发者避免易错点,提升按钮组件的使用体验。
179 77
|
25天前
|
存储 前端开发 UED
React 面包屑组件 Breadcrumb 详解
面包屑导航是现代Web应用中常见的UI元素,帮助用户了解当前位置并快速返回上级页面。本文介绍如何使用React构建面包屑组件,涵盖基本概念、实现方法及常见问题。通过函数式组件和钩子,结合React Router动态生成路径,处理嵌套路由,并确保可访问性。示例代码展示了静态和动态面包屑的实现,帮助开发者提升用户体验。
133 73
|
2月前
|
前端开发 JavaScript 测试技术
React 分页组件 Pagination
本文介绍了如何在 React 中从零构建分页组件,涵盖基础概念、常见问题及解决方案。通过示例代码详细讲解了分页按钮的创建、分页按钮过多、初始加载慢、状态管理混乱等常见问题的解决方法,以及如何避免边界条件、性能优化和用户反馈等方面的易错点。旨在帮助开发者更好地理解和掌握 React 分页组件的开发技巧,提升应用的性能和用户体验。
96 0
|
28天前
|
前端开发 UED 开发者
React 对话框组件 Dialog
本文详细介绍了如何在 React 中实现一个功能完备的对话框组件(Dialog),包括基本用法、常见问题及其解决方案,并通过代码案例进行说明。从安装依赖到创建组件、添加样式,再到解决关闭按钮失效、背景点击无效、键盘导航等问题,最后还介绍了如何添加动画效果和处理异步关闭操作。希望本文能帮助你在实际开发中更高效地使用 React 对话框组件。
136 75
|
1天前
|
前端开发 JavaScript UED
React 拖拽排序组件 Draggable List
在现代Web应用中,拖拽排序功能显著提升用户体验。使用React结合`react-dnd`库,可以轻松创建高效且易于维护的拖拽排序组件。通过简单的拖拽操作,用户能直观调整列表项顺序,适用于任务管理、看板工具等场景。实现步骤包括项目初始化、安装依赖、创建基础组件、添加拖拽功能及管理状态和事件。常见问题如拖拽效果不流畅、顺序未更新等可通过性能优化、正确处理索引交换等方式解决。移动端支持也需考虑,确保跨平台的良好体验。
41 25
|
3天前
|
前端开发 JavaScript UED
React 轮播图组件 Carousel
本文介绍了如何在 React 中实现和优化轮播图组件,涵盖自动播放、手动切换、循环播放和响应式设计等核心功能。通过 `useState` 和 `useEffect` 钩子管理状态和副作用,添加左右箭头和指示器增强交互性。同时,探讨了常见问题如自动播放与手动切换冲突、指示器样式不一致、响应式设计及性能优化,并提供解决方案和代码示例。帮助开发者提升轮播图组件的用户体验。
55 26
|
2月前
|
设计模式 前端开发 编译器
与普通组件相比,React 泛型组件有哪些优势?
与普通组件相比,React 泛型组件有哪些优势?
107 63
|
1月前
|
前端开发 Java API
React 进度条组件 ProgressBar 详解
本文介绍了如何在 React 中创建进度条组件,从基础实现到常见问题及解决方案,包括动态更新、状态管理、性能优化、高级动画效果和响应式设计等方面,帮助开发者构建高效且用户体验良好的进度条。
54 18
|
2月前
|
存储 前端开发 测试技术
React组件的最佳实践
React组件的最佳实践