当前位置: 首页 > wzjs >正文

网站开发中的文档qq排名优化网站

网站开发中的文档,qq排名优化网站,我的家乡网站建设,酒店 手机网站模板用法 乐观更新 发起异步请求时,先假设请求会成功立即更新 UI 给用户反馈若请求最终失败,再将 UI 恢复到之前的状态 const [optimisticState, addOptimistic] useOptimistic(state, updateFn) 参数 state:实际值,可以是 useSta…

用法


乐观更新

  • 发起异步请求时,先假设请求会成功
  • 立即更新 UI 给用户反馈
  • 若请求最终失败,再将 UI 恢复到之前的状态

const [optimisticState, addOptimistic] = useOptimistic(state, updateFn)

参数
state:实际值,可以是 useStateuseReduceruseContextprops
updateFn:纯函数

  • currentState
  • optimisticValue

返回值
optimisticState:乐观值

  • 正常情况下:和 state 实际值一致
  • 调用 addOptimistic 后,是 updateFn 的返回值

addOptimistic:调用updateFn,接收任意类型的 optimisticValue


注意点

  1. 要在 form ActionstartTransition 里面调用 addOptimistic
  2. 异步操作结束(无论成功还是失败),乐观值都会自动恢复成 state
    异步操作成功,需要手动 setState 更新实际值,从而更新 useOptimisticstate
    异步操作失败,不用管

测试代码

import React, { useState, useOptimistic, startTransition } from "react";// 模拟异步点赞请求,考虑请求失败的情况
const asyncLikePost = (postId) => {return new Promise((resolve, reject) => {setTimeout(() => {// 模拟 50% 的失败概率if (Math.random() < 0.5) {reject(new Error("点赞失败"));} else {resolve();}}, 3000);});
};const Post = ({ post }) => {const [likes, setLikes] = useState(post.likes);const [optimisticLikes, addOptimisticLikes] = useOptimistic(likes,(currentLikes, optimisticValue) => currentLikes + 1);const [error, setError] = useState(null);const handleLike = function handleLike() {startTransition(async () => {addOptimisticLikes();try {await asyncLikePost(post.id);setLikes((prevLikes) => prevLikes + 1);setError(null);} catch (error) {setError(error.message);}});};return (<div><p>{post.title}</p><p>实际点赞数: {likes}</p><p>乐观点赞数: {optimisticLikes}</p>{error && <p style={{ color: "red" }}>{error}</p>}<button onClick={handleLike}>点赞</button></div>);
};const PostList = () => {const posts = [{ id: 1, title: "帖子1", likes: 10 },{ id: 2, title: "帖子2", likes: 20 },];return (<div>{posts.map((post) => (<Post key={post.id} post={post} />))}</div>);
};export default function App() {return (<div><h1>帖子列表</h1><PostList /></div>);
}

文章转载自:

http://k9s2Vyj2.wrsnm.cn
http://9puA8ryS.wrsnm.cn
http://24uZcgVW.wrsnm.cn
http://PpMZ6CY3.wrsnm.cn
http://uGSCuUcc.wrsnm.cn
http://QiqeoHG0.wrsnm.cn
http://si3OnVJ4.wrsnm.cn
http://dnZx7N9n.wrsnm.cn
http://XHy5SsB5.wrsnm.cn
http://cOjkQMKf.wrsnm.cn
http://eaLqCcru.wrsnm.cn
http://Y3a01oYK.wrsnm.cn
http://7gZlWWm9.wrsnm.cn
http://oww4084z.wrsnm.cn
http://WQOYp9FB.wrsnm.cn
http://s3XrDMS8.wrsnm.cn
http://iMahuMyo.wrsnm.cn
http://nw9MRirJ.wrsnm.cn
http://hbedLzMg.wrsnm.cn
http://bJr04qk9.wrsnm.cn
http://VR2NYpOy.wrsnm.cn
http://5DnQChc0.wrsnm.cn
http://dF7QBGUw.wrsnm.cn
http://pfkVF83y.wrsnm.cn
http://VxEcbVDy.wrsnm.cn
http://B2PuGwPf.wrsnm.cn
http://TZGu6AoU.wrsnm.cn
http://tg2xFzvj.wrsnm.cn
http://vw003g2B.wrsnm.cn
http://llPNiRed.wrsnm.cn
http://www.dtcms.com/wzjs/729934.html

相关文章:

  • 绍兴做外贸网站的公司自助建站网站平台
  • 连锁餐饮网站建设饰品网站建设
  • 天门市住房和城乡建设网站营销型网站 案例
  • 免费网站建设源码汕头市建筑信息网站
  • 物流网站公司seo营销的策略有哪些
  • 做网站找哪里黑龙江住房和城乡建设局网站
  • 百度山西网站建设和百度推广黄冈市住房和城乡建设厅网站
  • 襄樊网站建设襄樊织梦论坛
  • html5网站开发价格数字营销1+x
  • 南宁手机平台网网站建设房地产 网站模板
  • 网站开发技术包括asp.net怎样做网站登录
  • 地图网站开发深圳网站建设怎样容易
  • 网站制作 网站开发设计网站建设选题报告
  • 网站seo优化的重要性东莞网站建设 乐云践新
  • 通州微平台网站建设建设工程部网站
  • 电子商务网站的建设与维护方法网页设计实训报告2000字
  • 找网站做外链是什么意思北京软件技术有限公司
  • 哈尔滨专业网站建设古镇高端网站建设
  • 白云网站建设价格网络推广发展
  • 聊城做网站的公司价位中国桥梁建设公司排名
  • 网站建站哪家公司好泰安电视台新闻综合频道
  • 怎么做跳转网站 充值登陆丝芭传媒有限公司
  • 帮别人建网站赚钱吗企业公示信息查询系统辽宁
  • 工程建设采购有哪些网站基于wordpress的博客系统
  • 企业网站备案管理系统怎么开一个属于自己的网店
  • 在线注销营业执照网站优化目录
  • 做网站团队圣都装饰
  • 网站的设计方法有哪些网站设计0基础
  • 简述网站建设基本步骤wordpress cdn缓存
  • 南昌为来创意网站建设公司宜飞思工业设计网站