Kei*_*ker 8 javascript shared-libraries npm reactjs
我想在我的 React 应用程序中使用 JavaScript 库 AOS ( https://michalsnik.github.io/aos/ )。如何将它包含在我的 App.js 文件中?
import React from 'react';
import logo from './logo.svg';
import './App.css';
import 'aos';
function App() {
AOS.init();
return (
<div className="App">
<header className="App-header">
<img data-aos={"fade-left"} src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
AOS需要初始化,所以我觉得我需要做一些我在上面代码中所做的事情,但它抛出了一个错误:
无法编译 ./src/App.js Line 8:3: 'AOS' is not defined no-undef
我将如何在反应中实现这一点?
wen*_*jun 20
根据文档,您需要AOS.init()在组件中调用以初始化它。这可以在您的componentDidMount生命周期钩子中完成。
此外,你应该通过引用导入defaultExport通过这样做import AOS from 'aos';
如果您使用的是类组件,那么您的代码应该是这样的。
import AOS from 'aos';
componentDidMount() {
// or simply just AOS.init();
AOS.init({
// initialise with other settings
duration : 2000
});
}
Run Code Online (Sandbox Code Playgroud)
另一方面,对于功能组件,
useEffect(() => {
AOS.init({
duration : 2000
});
}, []);
Run Code Online (Sandbox Code Playgroud)
记得添加一个空数组作为依赖数组,这样useEffect钩子在组件被挂载时只会运行一次,
Gab*_*abo 11
使用功能组件和钩子(useEffect),我是这样做的:
import React, { useEffect } from "react";
import AOS from "aos";
import "aos/dist/aos.css";
function App() {
useEffect(() => {
AOS.init();
AOS.refresh();
}, []);
return (
// your components
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)