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

p2p网站建设cms一键生成图片

p2p网站建设cms,一键生成图片,深圳做网站de,西安网站建设公司哪家好前言 useFetcher 是 React Router 中一个强大的钩子#xff0c;用于在不触发页面导航的情况下执行数据加载#xff08;GET#xff09;或提交#xff08;POST#xff09;。 一、useFetcher 应用场景#xff1a; 1、后台数据预加载#xff08;如鼠标悬停时加载数据用于在不触发页面导航的情况下执行数据加载GET或提交POST。 一、useFetcher 应用场景 1、后台数据预加载如鼠标悬停时加载数据 2、无刷新表单提交如点赞、评论 3、多步骤表单的局部提交 4、与当前页面路由解耦的独立数据操作 二、useFetcher 核心特性 非侵入式操作不会影响当前路由或 URL。 状态跟踪提供 state 属性跟踪操作状态idle/submitting/loading。 数据缓存自动管理相同请求的缓存避免重复提交。 多实例支持可在同一页面多次使用独立管理不同操作。 三、useFetcher 基本使用 3.1、 初始化 Fetcher import { useFetcher } from react-router-dom;function LikeButton() {const fetcher useFetcher();return (fetcher.Form methodpost action/api/likebutton typesubmit{fetcher.state submitting ? 点赞中... : 点赞}/button/fetcher.Form); }3.2、useFetcher核心 API 与参数 useFetcher() 返回一个对象包含以下属性和方法 属性/方法 Form React 组件 用于 替代 form提交时不会触发页面导航 submit(data, options) 函数 用于 手动提交数据支持 FormData/对象/URL参数 load(url) 函数 用于 手动触发 GET 请求加载数据 data any 表示 最近一次成功操作返回的数据 state idle/submitting/loading 表示 当前操作状态 四、useFetcher 完整案例用户评论功能 4.1、 组件代码 function CommentSection({ postId }) {const fetcher useFetcher();const [commentText, setCommentText] useState();// 显示提交后的评论包括乐观更新const comments fetcher.data?.comments || [];return (divh3评论列表/h3ul{comments.map((comment) (li key{comment.id}{comment.text}/li))}/ulfetcher.Formmethodpostaction{/posts/${postId}/comment}onSubmit{() setCommentText()} // 清空输入框textareanametextvalue{commentText}onChange{(e) setCommentText(e.target.value)}/button typesubmit disabled{fetcher.state ! idle}{fetcher.state submitting ? 提交中... : 发布评论}/button/fetcher.Form{/* 显示错误信息 */}{fetcher.data?.error (div classNameerror{fetcher.data.error}/div)}/div); }4.2、 后端路由处理示例 // 路由配置中的 action 函数 export async function commentAction({ request, params }) {const postId params.postId;const formData await request.formData();try {// 模拟 API 调用const response await fetch(/api/posts/${postId}/comment, {method: POST,body: JSON.stringify({ text: formData.get(text) }),});if (!response.ok) throw new Error(评论失败);const result await response.json();// 返回更新后的评论列表return { comments: result.comments };} catch (error) {return { error: error.message };} }五、useFetcher 高级用法手动控制数据流 5.1、手动提交数据 function SearchBox() {const fetcher useFetcher();const [query, setQuery] useState();// 输入变化时自动搜索防抖useEffect(() {const timeoutId setTimeout(() {if (query) {fetcher.load(/api/search?q${query});}}, 300);return () clearTimeout(timeoutId);}, [query]);return (divinputtypetextvalue{query}onChange{(e) setQuery(e.target.value)}/{/* 显示搜索结果 */}{fetcher.data?.results?.map((result) (div key{result.id}{result.name}/div))}/div); }5.2、处理文件上传 function AvatarUpload() {const fetcher useFetcher();const handleFileChange (e) {const file e.target.files[0];const formData new FormData();formData.append(avatar, file);// 手动提交 FormDatafetcher.submit(formData, {method: post,action: /api/upload-avatar,encType: multipart/form-data,});};return (divinput typefile onChange{handleFileChange} /{fetcher.data?.url (img src{fetcher.data.url} alt用户头像 /)}/div); }六、useFetcher使用注意事项 6.1、路由配置要求 必须使用数据路由通过 createBrowserRouter 创建路由 提交的目标路由action 路径需要定义对应的 action 函数 6.2、性能优化 避免高频调用 load/submit如搜索框需防抖 对相同 URL 的请求React Router 会自动去重 6.3、错误处理 通过 fetcher.data 接收 action 返回的错误信息 使用 try/catch 包裹异步操作并返回错误状态 6.4、与全局状态配合 如果需要更新全局数据如用户信息结合 useRevalidator() 重新验证路由加载器 七、useFetcher与普通表单提交的对比 总结 我们可以用useFetcher 实现高度交互的 Web 应用同时保持代码的简洁性和可维护性。 它是构建现代 SPA(单页面应用) 中复杂交互如即时保存、实时搜索的理想工具。 如有错误之处欢迎评论指正
http://www.pierceye.com/news/110692/

相关文章:

  • html静态网站开发自我介绍网站手机客户端开发教程
  • 营销型网站是什么样的桂林北站有核酸检测点吗
  • 网站未备案被阻断怎么做it培训机构哪个好一点
  • 重庆建设注册执业中心网站网络营销百度百科
  • app网站怎么下载个人备案做视频网站
  • 西宁建一个网站公司广东网站备案
  • 网站数据比较北京网站优化推广公司
  • 想做网站的客户在哪找美间在线设计平台
  • 网站设计规划的目的和要求营销外贸网站建设案例
  • 网站营销力一级a做爰片2017免费网站
  • 昌图网站网页界面设计的要求
  • 做一个网站赚钱什么 门户网站
  • 中国建设银行购物网站帝国织梦wordpress
  • 瑞安网站网站建设松原公司做网站的流程
  • 做网站按页面收费视频解析网站如何做搜索
  • 太原网站的公司赣州安全教育平台
  • 淮北建投网站网站推广与维护有什么不同
  • 深圳网站备案注销平果县免费网站哪家好
  • 如何区分网站开发语言做网站多少钱一般
  • 定制专业app开发seo数据统计分析工具有哪些
  • 某服装公司网站建设论文网站建设seo虾哥网络
  • 网站建设销售员工作内容网站访问量过大
  • 企业网站加快企业信息化建设设计网站名称
  • 做网站的技术要求高吗农业推广专业
  • 在百度做个卷闸门网站怎么做成都高端网站
  • 个人网站备案名称填写货运网站建设公司
  • 有网页源码 怎么做网站外链发布软件
  • 医疗网站建设基本流程wordpress速度加快
  • 网站建设优化开发公司哪家好泰州东方医院男科
  • 怎么自己做歌曲网站大连网站制作公司费用多少