延迟加载和记忆化| ReactJS |第 1 部分

延迟加载和记忆化| reactjs |第 1 部分

ReactJS 上下文中延迟加载和记忆化的比较,包括定义、用例和示例:

延迟加载

定义

React 中的延迟加载是指仅在需要时加载组件或资源的做法,而不是在初始页面加载时加载。这减少了初始加载时间并提高了性能。

要点

目标:减少初始包大小并优化性能。

使用时:对于不立即需要的组件或资产(例如,隐藏选项卡中的模态或图像)。

React 功能:使用 React.lazy 和 Suspense 实现。

示例:延迟加载组件

从 ‘react’ 导入 React, { Suspense };

const HeavyComponent = React.lazy(() => import(‘./HeavyComponent’));

const App = () => {
返回(

欢迎使用我的应用程序

正在加载…}>

);
};

导出默认应用程序;

行为:HeavyComponent 仅在渲染时才会加载。

记忆

定义

React 中的记忆化是缓存函数或组件渲染结果的过程,以避免不必要的重新计算或重新渲染。它通过防止冗余操作来帮助提高性能。

要点

目标:避免昂贵的重新计算或重新渲染。

使用时:对于计算成本较高的函数或重复接收相同 props 的组件。

React 功能:使用 useMemo、useCallback 和 React.memo 实现。

示例:记忆组件

从 ‘react’ 导入 React, { useMemo };

const ExpenseCalculation = ({ number }) => {
const 计算 = (num) => {
console.log(‘正在计算…’);
返回数字*2; // 模拟昂贵的操作
};

const result = useMemo(() =>calculate(number), [number]);

返回

结果:{结果};
};

导出默认的 ExpenseCalculation;

行为:calculate仅在number属性改变时执行,避免冗余计算。

何时使用每个?

延迟加载:
当您的应用程序具有可以推迟到需要时使用的大型组件或资源(例如仪表板图表或包含大量图像的图库)时使用。

记忆:
当您的应用程序执行重复计算或由于道具或状态未更改而不必要地重新渲染组件时使用。

以上就是延迟加载和记忆化| ReactJS |第 1 部分的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2648519.html

(0)
上一篇 2025年3月7日 08:14:21
下一篇 2025年2月23日 20:13:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 动态推导及其杀死useEffect的方法

    标题有点“点击诱饵”,但想法并没有错。 我并不认为 useeffect 是一个不好的 hook,实际上恰恰相反。但在作为派生机的 react 中,使用 useeffect 进行状态同步并不是最好的选择,核心团队也不推荐。 但是等等,如果我有…

    2025年3月7日
    200
  • useEffect 的消亡以及其中的动态衍生角色

    标题有点“点击诱饵”,但想法并没有错。 我并不认为 useeffect 是一个不好的 hook,实际上恰恰相反。但在作为派生机的 react 中,使用 useeffect 进行状态同步并不是最好的选择,核心团队也不推荐。 但是等等,如果我有…

    2025年3月7日
    200
  • 如何开发js框架

    JavaScript 框架开发步骤:确定需求:明确框架目标、用户和功能要求。架构设计:考虑模块化、松散耦合和抽象原则。核心功能开发:开发模块管理、事件处理、状态管理和数据绑定等功能。插件支持:提供插件机制以扩展框架功能。文档和测试:创建清晰…

    2025年3月7日
    200
  • 获取网站js如何整理

    可以通过以下步骤整理网站 JavaScript:1. 模块化代码;2. 使用包管理器;3. 代码缩小;4. 加载优化;5. 避免全局污染;6. 使用严格模式;7. 遵循编码约定;8. 使用代码注释;9. 版本控制。这样可以提升网站性能、可维…

    2025年3月7日
    200
  • js如何引用外部js

    外部 JS 可以通过在 HTML 中使用 标签进行引用,优点包括:代码重用、提高可维护性和加快页面加载速度。外部 JS 的加载方式有顺序加载、异步加载和延迟加载。示例:通过 ,可以顺序加载外部 JS 文件 my_script.js。 如何在…

    2025年3月7日
    400
  • 如何加载js脚本

    加载 JS 脚本有以下几种方法:内联脚本:直接写在 HTML 文档中,加载速度快,但难以维护;外部脚本:存储在独立的 .js 文件中,维护性好,可被缓存;异步加载:允许浏览器继续解析 HTML,提高加载速度和交互性,但执行顺序无保证;延迟加…

    2025年3月7日
    200
  • 现代Web开发中卡片的设计与实现

    卡片是现代网页设计中最通用的组件之一。它们用于以简洁且具有视觉吸引力的方式呈现信息,从在线商店中的产品到博客上的文章。在本指南中,我们将探索不同的实现和最佳实践。 卡片剖析 一张典型的卡片由几个元素组成: @@##@@ título de …

    2025年3月7日 编程技术
    200
  • 准备前端项目以进行实时部署

    准备前端项目以进行实时部署 部署前端项目不仅仅是将文件上传到服务器。需要仔细规划、优化并充分了解托管环境,才能确保您的网站或应用程序快速、轻量级且可靠。在本文中,我们将介绍准备前端项目进行实时部署的关键步骤。我们将重点关注优化代码、管理资产…

    2025年3月7日
    200
  • 4年前端开发必备技术

    前端开发市场发展迅速,带来了新的工具和实践,改变了创建 Web 应用程序的体验。对于开发人员来说,无论是初学者、全职人员,还是想要了解自己要寻找什么的招聘人员,了解当今不可或缺的技术至关重要。让我们探讨一下 2024 年市场真正发生变化的因…

    2025年3月7日
    200
  • 使用 Vitest 进行单元测试:下一代测试框架

    为什么选择维泰斯特? vitest 的设计考虑了现代开发。这就是它脱颖而出的原因: 速度 vitest 以 vite 作为基础,利用其闪电般快速的热模块替换 (hmr) 和 esbuild 进行捆绑和转译。结果是: 智能即时监视模式:仅针对…

    2025年3月7日
    200

发表回复

登录后才能评论