同学你好 研究了一下发现
1.为什么 useLoader 没有重新加载图片,mousemove 的时候会触发 rerender,但是由于我们的 useURLLoader 的 useEffect 第二个数组判断了 url 是否有变化,(在这个情况下 url 没有变化),所以没有重新加载。
2. 为什么 HOC 会重新加载,原因是我们将这个组件,放在了 App 的函数体内,rerender 的时候等于每次都会重新生成一遍组件实例,所以会重新加载,假如你把它挪到函数体外面,就会发现没问题了。
const WrappedDogShow = withLoader(DogShow, 'https://dog.ceo/api/breeds/image/random')
function App() {
...
}