tanstack/react-query使用手册

1. useQuery

useQuery的使用

一、data是后端成功返回的数据, 第一次的值为undefined
二、isLoading是指数据是否正在加载的状态,通常用于判断请求是否还在进行中。当isLoading为true时,表示数据正在加载中,当isLoading为false时,表示数据加载完成。
三、isFetching是指数据是否正在进行更新的状态,通常用于判断数据是否正在进行更新操作,比如重新加载数据或者刷新数据。当isFetching为true时,表示数据正在进行更新操作,当isFetching为false时,表示数据更新操作完成。
isLoading和isFetching的区别在于,isLoading表示数据是否正在加载中,而isFetching表示数据是否正在进行更新操作。可以说isLoading是isFetching的子集,即当isFetching为true时,isLoading一定为true,但当isLoading为true时,isFetching不一定为true。

const {data, isFetching, isLoading} = useQuery({
    // queryKey的robotList可以认为是这个useQuery的身份识别,必须是唯一的,后面携带的参数是用来控制是否触发查询,如果条件不变则取缓存内的数据而不调用接口
    queryKey: ['robotList', curPage, pageSize],
    queryFn: () => ServiceWorkerRegistration.fetchRobotList({curPage: 1, pageSize: 20})
});

2. useMutation

// mutate是用来触发这个方法,isPending是布尔值,true为正在调用中,false表示接口调用完成
const {mutate, isPending} = useMutation({
    mutationFn: () => services.fetchAddRobot({name: '机器人'}),
    onSuccess: resp => {
        // resp为后端返回值

    },
    onError: err => {
        console.err(err);
    }
})


3. useQueryClient(结合useQuery和useMutation一起使用)

import {useQuery, useMutation, useQueryClient} from '@tanstack/react-query';

function App(props) {
    const client = useQueryClient();

    const {data, isFetching, isLoading} = useQuery({
        // queryKey的robotList可以认为是这个useQuery的身份识别,必须是唯一的,后面携带的参数是用来控制是否触发查询,如果条件不变则取缓存内的数据而不调用接口
        queryKey: ['robotList', curPage, pageSize],
        queryFn: () => ServiceWorkerRegistration.fetchRobotList({curPage: 1, pageSize: 20})
    });
    
    const {mutate, isPending} = useMutation({
        mutationFn: () => services.fetchAddRobot({name: '机器人'}),
        onSuccess: resp => {
            // resp为后端返回值
            if (resp.code === 8) {
                // 创建成功后重新查询
                client.invalidateQueries({
                    <!-- 上方提到的useQuery的身份识别用途之一就是这里,根据queryKey判断是否触发全部的useQuery,如果存在值就只触发对应的useQuery -->
                    queryKey: ['hello']
                })
            }
        },
        onError: err => {
            console.err(err);
        }
    })

    return (
        <div>展示用法</div>
    )    
}

相关推荐

  1. tanstack/react-query使用手册

    2023-12-08 18:08:02       59 阅读
  2. WordPress WP_Query参数使用说明

    2023-12-08 18:08:02       45 阅读
  3. SQLAlchemy中query函数的使用

    2023-12-08 18:08:02       35 阅读
  4. 【Node】npm使用手册

    2023-12-08 18:08:02       60 阅读
  5. Tomcat使用手册

    2023-12-08 18:08:02       45 阅读
  6. ffmpeg使用手册

    2023-12-08 18:08:02       70 阅读
  7. ImageMagick使用手册

    2023-12-08 18:08:02       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 18:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 18:08:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 18:08:02       82 阅读
  4. Python语言-面向对象

    2023-12-08 18:08:02       91 阅读

热门阅读

  1. 提高图片分辨率的方法与实践

    2023-12-08 18:08:02       58 阅读
  2. ElasticSearch 排障常用方法

    2023-12-08 18:08:02       67 阅读
  3. 判断path是文件夹,文件,还是不存在

    2023-12-08 18:08:02       64 阅读
  4. C++基础 std::funtion简说

    2023-12-08 18:08:02       59 阅读
  5. 多线程解决大数据批量导出问题(demo)

    2023-12-08 18:08:02       62 阅读
  6. VS2010 VS2015环境编译boost库

    2023-12-08 18:08:02       47 阅读
  7. 移植OpenSSH到DM IPNC中的Linux ARM SSH编程

    2023-12-08 18:08:02       68 阅读
  8. Sentinel与SpringBoot整合

    2023-12-08 18:08:02       56 阅读
  9. Spring 之 @Cacheable 缓存使用教程

    2023-12-08 18:08:02       56 阅读