function useAxios(url, config = {}) {
console.log('useAxios...')
const [loading, setLoading] = useState(false)
const [data, setDate] = useState()
const [error, setError] = useState()
useEffect(() => {
console.log('useAxios...useEffect')
setLoading(true)
// axios(url)
// .then(res => setDate(res))
// .catch(err => setError(err))
// .finally(() => setLoading(false))
// return () => {}
}, [url, config])
return {
loading,
data,
error,
}
}

现象:上边的代码,我把 axios 的相关代码注释掉之,只留一个 setLoading(true),就不会出现死循环。看输出 re-render 好像 re-render 了两次,但是进入 useEffect 却只有一次
疑问:
setLoading(true) 后,为什么会这样输出?config 是在什么阶段进行比较的?为什么 加上 axios 的逻辑就会死循环?