将jQuery转换为useEffect

时间:2020-06-03 18:51:56

标签: javascript jquery reactjs

是否有将jQuery转换为useEffect的方法?或使这些代码在UseEffect中起作用

$(document).ready(function () {
        $('.slider').slider({
            indicators: false,
            height: 1000,
            transition: 500,
            interval: 6000
        });
    });

请协助

1 个答案:

答案 0 :(得分:0)

除非您使用服务器端渲染,否则在文档准备就绪时,ReactDOM已经可以使用。不仅如此,而且由于React组件使用虚拟DOM,因此jQuery无法在挂载时自行判断。

您应该改为将处理程序包装在带有空依赖项数组的useEffect钩子中,如下所示:

function Component(props) {
  useEffect(() => {
    $('.slider').slider({
      // ...
    })
  }, [])

  // ...
}

一个更好的解决方案是在npm上找到一个执行相同功能的React库。不仅效果更好,而且您将不必依赖jQuery,而jQuery是IMO React淘汰的。