网站建设注册,前端开发培训机构推荐,网站开发 为什么要用缩略图,wordpress建站教程入门const result cache#xff08;fn#xff09;方法#xff1a; fn#xff1a;要对其结果进行缓存的函数。fn 可以接受任何参数并返回任何值。 返回值result : 返回一个与 fn 具有相同类型签名的已缓存版本。在此过程中#xff0c;它不会调用 fn。 cache 用法
import {cac…const result cachefn方法 fn要对其结果进行缓存的函数。fn 可以接受任何参数并返回任何值。 返回值result : 返回一个与 fn 具有相同类型签名的已缓存版本。在此过程中它不会调用 fn。 cache 用法
import {cache} from react;
import calculateMetrics from lib/metrics;const getMetrics cache(calculateMetrics);//当首次使用 data 调用 getMetrics 时getMetrics 将调用 calculateMetrics(data) 并将结果存储在缓存中
//如果再次使用相同的 data 调用 getMetrics它将返回缓存的结果而不会再次调用 calculateMetrics(data)
function Chart({data}) {const report getMetrics(data);// ...
}1.缓存代价昂贵的计算
使用 cache 跳过重复工作
import {cache} from react;
import calculateUserMetrics from lib/user;const getUserMetrics cache(calculateUserMetrics);function Profile({user}) {const metrics getUserMetrics(user);// ...
}function TeamReport({users}) {for (let user in users) {//如果user相同使用上一次calculateUserMetrics方法计算的缓存反之调用calculateUserMetrics计算const metrics getUserMetrics(user);// ...}// ...
}2.不同组件共享数据预加载数据
要在组件之间共享数据快照通过缓存长时间运行的数据获取你可以在渲染组件之前开始异步工作。
//当多个组件进行相同的数据获取时(即多个组件都调用getUser函数)只会发出一个请求并且返回的数据会被缓存并在各个组件之间共享
//尽管传递的是相同参数我的记忆化函数仍在重新运行
//只要入参id不相同就不会缓存数据会调用获取新数据。
const getUser cache(async (id) {return await db.user.query(id);
}async function Profile({id}) {const user await getUser(id);return (sectionimg src{user.profilePic} /h2{user.name}/h2/section);
}function Page({id}) {// ✅ 正确示例开始获取用户数据。getUser(id);// ……一些计算工作return (Profile id{id} //);
}