看了一下断点,顺序是16-30-21-30.也就是willmount之后render,load这个异步方法在任务队列中再执行,setState,diff,然后render为啥都说要在didmount里面ajax呢
欢迎选择我的课程,让我们一起见证您的进步~~
无论是在willMounnt还是didMount触发异步请求,都会render两次。第一次是组件加载时,第二次是在异步请求返回setState时。
但是,逻辑应该是在显示组件,比如有加载状态,然后去触发请求。还有一个最重要的点,react fiber更新之后,他会多次触发willMounnt,如此会引起bug。所以,异步请求一般放在didMount。
无论是在willMounnt还是didMount触发异步请求,都会render两次。第一次是组件加载时,第二次是在异步请求返回setState时。
但是,逻辑应该是在显示组件,比如有加载状态,然后去触发请求。还有一个最重要的点,react fiber更新之后,他会多次触发willMounnt,如此会引起bug。所以,异步请求一般放在didMount。