优化React和React Query的数据查询,仅在组件在视口中时进行
P粉714890053
P粉714890053 2023-08-28 17:26:18
[React讨论组]

我有一个使用React渲染帖子组件列表的页面,对于每个帖子组件,我都会获取与该帖子相关的评论,并使用React Query库将其显示在内部。问题是,当用户加载帖子页面时,React Query会一次性加载所有帖子的所有评论,这会导致我的后端变慢。

我想实现一个机制,只有当用户滚动到特定的帖子时才加载评论,而不是在页面渲染时一次性加载所有内容。如何使用React和React Query实现这一点?

这是我当前的示例代码来获取和显示评论:

我的帖子组件

import React from 'react';
import { useQuery } from 'react-query';

const PostComponent = ({ post }) => {
  const { data, isLoading, error } = useQuery(
    ['comments', post.id],
    () => fetchComments(post.id)
  );

  return (
    <div>
      {/* 渲染你的帖子组件 */}
      {isLoading && <div>正在加载评论...</div>}
      {error && <div>获取评论时出错</div>}
      {data && (
       <div><p>{post.title}</p> </div>
      )}
    </div>
  );
};

我的帖子页面组件

import React from 'react';
import { useQuery } from 'react-query';

const PostsPage = () => {
  const { data, isLoading, error } = useQuery('posts', fetchPosts);

  return (
    <div>
      {isLoading && <div>正在加载帖子...</div>}
      {error && <div>获取帖子时出错</div>}
      {data &&
        data.map((post) => (
          <PostComponent key={post.id} post={post} />
        ))}
    </div>
  );
};

P粉714890053
P粉714890053

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号