阿潮 我的理解是,没有使用 useEffect 的情况是因为视频的暂停/播放按钮是和 video 标签是一个组件,不太会出现异步的情况,也就是说操作按钮的时候 video 标签一定也已经渲染。使用 useEffect 的情况从代码上来说是将 video 封装为另一个组件,与按钮分离开,此时按钮被渲染好的情况下(也就是按钮可以被操作的情况下,再进一步说 isPlaying 可以被改变的情况下)video 不一定已经被渲染,所以使用 useEffect 进行异步操作的处理,也就是等待 video 真正被渲染好了再播放或暂停视频。我对前端了解也不是太深入,以上看法仅供参考。