1분 안에 React 앱 애니메이션 만들기
8091 단어 webdevangularreactjavascript
동기 부여:
모든 종류의 웹 앱을 구축하려면 애니메이션이 좋아야 합니다. Framer 모션이나 일반 이전 CSS와 같은 타사 Lib로 애니메이션을 추가할 수 있지만 문제는 이러한 모든 옵션을 사용하려면 엄청난 양의 코드를 작성하고 모든 애니메이션 타이밍과 항목을 정의해야 한다는 것입니다. 오늘은 이 모든 것을 건너뛰고 Autoanimate을 사용하여 애니메이션을 만들어 보겠습니다.
소개 :
Autoanimate는 웹 앱에 부드러운 전환을 추가하는 제로 구성 드롭인 애니메이션 유틸리티입니다. React, Vue, Svelte 또는 기타 JavaScript 애플리케이션과 함께 사용할 수 있습니다.
설치 :
yarn add @formkit/auto-animate
설치 및 구성이 전부입니다.사용법 :
autoanimate
양식/auto-animate를 가져오고 useRef
를 사용하여 상위 요소의 참조를 전달합니다.이제 모든 하위 요소는 추가, 제거 또는 이동할 때마다 애니메이션됩니다.
import { useState, useRef, useEffect } from 'react'
import autoAnimate from '@formkit/auto-animate'
const Dropdown = () => {
const [show, setShow] = useState(false)
const parent = useRef(null)
useEffect(() => {
parent.current && autoAnimate(parent.current)
}, [parent])
const reveal = () => setShow(!show)
return <div ref={parent}>
<strong className="dropdown-label" onClick={reveal}>Click me to open!</strong>
{ show && <p className="dropdown-content" >Lorum ipsum...</p> }
</div>
}
export default Dropdown
그게 당신의 Dropdown 애니메이션입니다.
모든 요소의 참조를 전달할 수 있으며 모든 하위 요소도 List처럼 애니메이션됩니다.
커스터마이징 :
Autoanimate는 필요한 경우 애니메이션을 사용자 정의할 수 있는 후크
useAutoAnimate
도 제공합니다.
App.jsx
import { useState } from 'react'
import { useAutoAnimate } from '@formkit/auto-animate/react'
const App = function () {
const [items, setItems] = useState([0, 1, 2])
const [parent] = useAutoAnimate({ duration: 500 })
const add = () => setItems([...items, items.length])
return <>
<ul ref={parent}>
{items.map(
item => <li key={item}>{ item }</li>
)}
</ul>
<button onClick={add}>Add number</button>
<button onClick="{() => enableAnimations(false)}">Disable</button>
</>
}
export default App
이 포스트는 React에 초점을 맞추고 있습니다. Vanilla JS에서는 훨씬 더 쉽습니다. 기본적으로 거의 모든 JS 프로젝트에서 이것을 사용할 수 있습니다.
Link for official Website 건배입니다.
Reference
이 문제에 관하여(1분 안에 React 앱 애니메이션 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ranjan/animating-react-app-in-less-than-a-minute-43p6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)