随着功能越来越复杂,你会发现App()
封装了大量的代码,例如加载中的处理,错误的处理等等。其实这些东西是所有接口调用都需要用到的。编界有一句话,叫做Don't Repeat Yourself
,如果反复的写重复的内容,就造成代码大量的冗余、复杂、难以维护。
所以解决的方法,是通过自定义 hook,将这些重复的内容提取封装出来。
拆分出自定义的 hook
新建一个useFetchData.js
文件,里面存放要拆出来的自定义 hook 代码
import React, {useState, useEffect} from 'react';
import axios from 'axios';
const useFetchData = (url, initData) => {
// initData是初始值,如果用户不传,默认就是 []
const [data, setData] = useState(initData || []);
const [loading, setLoading] = useSt...