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

淘宝店购买网站建设部网站注册查询

淘宝店购买网站,建设部网站注册查询,服装移动网站策划案,河南建设监理协会新网站Suspense Suspense 是一种异步渲染机制#xff0c;其核心理念是在组件加载或数据获取过程中#xff0c;先展示一个占位符#xff08;loading state#xff09;#xff0c;从而实现更自然流畅的用户界面更新体验。 应用场景 异步组件加载#xff1a;通过代码分包实现组件…Suspense Suspense 是一种异步渲染机制其核心理念是在组件加载或数据获取过程中先展示一个占位符loading state从而实现更自然流畅的用户界面更新体验。 应用场景 异步组件加载通过代码分包实现组件的按需加载有效减少首屏加载时的资源体积提升应用性能。 异步数据加载在数据请求过程中展示优雅的过渡状态如 loading 动画、骨架屏等为用户提供更流畅的交互体验。 异步图片资源加载智能管理图片资源的加载状态在图片完全加载前显示占位内容确保页面布局稳定提升用户体验。 用法 Suspense fallback{divLoading.../div}AsyncComponent / /Suspense入参: fallback: 指定在组件加载或数据获取过程中展示的组件或元素children: 指定要异步加载的组件或数据 案例 异步组件加载 创建一个异步组件 src/components/Async/index.tsx export const AsyncComponent () {return divAsync/div }export default AsyncComponentsrc/App.tsx 使用lazy进行异步加载组件使用Suspense包裹异步组件fallback指定加载过程中的占位组件 import React, { useRef, useState, Suspense,lazy } from react; const AsyncComponent lazy(() import(./components/Async)) const App: React.FC () {return (Suspense fallback{divloading/div}AsyncComponent //Suspense/); }export default App;效果如下: 可以将网络调整到慢速可以看到loading效果 异步数据加载 我们实现卡片详情在数据加载过程中展示骨架屏数据加载完成后展示卡片详情。 建议升级到React19, 因为我们会用到一个use的API, 这个API在React18中是实验性特性在React19纳入正式特性 模拟数据,我们放到public目录下, 方便获取直接(通过地址 文件名获取) 例如: http://localhost:5173/data.json public/data.json {data:{id:1,address:北京市房山区住岗子村10086,name:小满,age:26,avatar:https://api.dicebear.com/7.x/avataaars/svg?seed小满} } 创建一个骨架屏组件用于在数据加载过程中展示提升用户体验,当然你封装loading组件也是可以的。 src/components/skeleton/index.tsx import ./index.css export const Skeleton () {return div classNameskeletonheader classNameskeleton-headerdiv classNameskeleton-name/divdiv classNameskeleton-age/div/headersection classNameskeleton-contentdiv classNameskeleton-address/divdiv classNameskeleton-avatar/div/section/div }.skeleton {width: 300px;height: 150px;border: 1px solid #d6d3d3;margin: 30px;border-radius: 2px; }.skeleton-header {display: flex;justify-content: space-between;align-items: center;border-bottom: 1px solid #d6d3d3;padding: 10px; }.skeleton-name {width: 100px;height: 20px;background-color: #d6d3d3;animation: skeleton-loading 1.5s ease-in-out infinite; }.skeleton-age {width: 50px;height: 20px;background-color: #d6d3d3;animation: skeleton-loading 1.5s ease-in-out infinite; }.skeleton-content {display: flex;justify-content: space-between;align-items: center;padding: 10px; }.skeleton-address {width: 100px;height: 20px;background-color: #d6d3d3;animation: skeleton-loading 1.5s ease-in-out infinite; }.skeleton-avatar {width: 50px;height: 50px;background-color: #d6d3d3;animation: skeleton-loading 1.5s ease-in-out infinite; }keyframes skeleton-loading {0% {opacity: 0.6;}50% {opacity: 1;}100% {opacity: 0.6;} }创建一个卡片组件用于展示数据这里面介绍一个新的API use use API 用于获取组件内部的Promise,或者Context的内容该案例使用了use获取Promise返回的数据并且故意延迟2秒返回模拟网络请求。 src/components/Card/index.tsx import { use } from react import ./index.css interface Data {name: stringage: numberaddress: stringavatar: string }const getData async () {await new Promise(resolve setTimeout(resolve, 2000))return await fetch(http://localhost:5173/data.json).then(res res.json()) as { data: Data } };const dataPromise getData();const Card: React.FC () {const { data } use(dataPromise);return div classNamecardheader classNamecard-headerdiv classNamecard-name{data.name}/divdiv classNamecard-age{data.age}/div/headersection classNamecard-contentdiv classNamecard-address{data.address}/divdiv classNamecard-avatarimg width{50} height{50} src{data.avatar} alt //div/section/div; };export default Card;.card {width: 300px;height: 150px;border: 1px solid #d6d3d3;margin: 30px;border-radius: 2px; }.card-header {display: flex;justify-content: space-between;align-items: center;border-bottom: 1px solid #d6d3d3;padding: 10px; }.card-age {font-size: 12px;color: #999; }.card-content {display: flex;justify-content: space-between;align-items: center;padding: 10px; }使用方式如下: 通过Suspense包裹Card组件fallback指定骨架屏组件 src/App.tsx import React, { useRef, useState, Suspense,lazy } from react; import Card from ./components/Card import { Skeleton } from ./components/Skeleton const App: React.FC () {return (Suspense fallback{Skeleton /}Card //Suspense/); }export default App;效果如下:
http://www.w-s-a.com/news/364909/

相关文章:

  • 做中医药网站有前景吗企业网站优化公司
  • 四川建设设计公司网站海南澄迈县
  • 邳州做网站梵克雅宝项链官网价格图片
  • dede网站收录滦平县建设局网站
  • 上海网站建设开发公注册公司要求什么条件
  • 安徽汽车网网站建设wordpress 知乎
  • 网站建设的功能都需要有哪些在线平台
  • 湖南岳阳网站开发网络公司石家庄做网站的公司哪个好
  • 西安市做网站的公司门户网站对应序号是什么
  • 太原网站域名开发什么是网页界面设计
  • 做产品类网站有哪些做一百度网站吗
  • 在线视频网站建设国外最新创意产品网站有哪些方面
  • 在一个网站下建设多个子网站宣传册画册设计公司
  • 潍坊网站建设公司排名网站建设预付
  • 手机和wap网站建设crm客户管理系统模板
  • 微商城网站建设市场唐山地方志网站建设
  • 想象力做网站网站301跳转代码
  • 做暧暧小视频有声音的网站太原网页搜索排名提升
  • 公众号链接的手机网站怎么做动易2006学校网站
  • 网站网上推广网站推他网站
  • 如何进行网站建设分析济宁做企业网站
  • 长沙网站seo技巧wordpress插件头像
  • appserv做网站教程微信信息流广告案例
  • 前端网站开发兼职长春火车站地下停车场收费标准
  • 苏州推广网站建设概况大连公交app
  • 移动互联网站开发与维护招聘网站建设计入什么费用
  • 郑州营销型网站建设erp系统有什么用
  • 公司网站开发费怎么入账投放广告网站
  • 企业网站开发文献综述加盟网网站建设策划书
  • 最便宜的网站空间网站建设和app开发