반응형
리엑트에서 화면 스크롤 이동이 가능하다.
1. scroll to top 함수 만들기
스크롤을 화면 가장 상단으로 올리는 부분은 scrollTo 를 사용하여 위치를 가장 상단인 0으로 지정한 뒤 이동시킬 수 있다.
const scrollToTop = () -> {
window.scrollTo({
top:0,
behavior: 'smooth'
})
};
behavior 옵션은 auto 와 smooth 로 설정 가능하며 auto는 바로 이동, smooth는 말 그대로 부드럽게 이동시킨다.
2. useRef
저장공간(변수 관리), DOM 요소에 접근을 위해 사용되는 훅이다.
useState와 동일하게 컴포넌트 내부에서 렌더링이 일어나도 변경 가능한 상태 값을 저장한다.
또한, 객체 내부에 있는 'current' 반환값에 접근 또는 변경이 가능하다.
그 값이 변하더라도 렌더링을 발생시키지 않는다.
import React, {useRef} from "react";
function App() {
const moveToDiv = useRef();
const onMoveToDiv = () => {
moveToDiv.current.scrollIntoView({ behavior: 'smooth', block: 'start'});
};
return (
<>
<div>
Top div
<Button onClick={onMoveToDiv}>화면이동버튼</Button>
<div>
<div ref={moveToDiv}>이동 할 Div<div>
</>
);
}
export default App;
원하는 위치에 ref 값을 주고
버튼 클릭 시 해당 위치로 스크롤 이동을 할 수 있다.
반응형
'React' 카테고리의 다른 글
[React] 오류 해결 - Property 'div' does not exist on type 'JSX.IntrinsicElements'. ('div'가 존재하지 않는 타입이라고 나올때) (0) | 2024.04.15 |
---|---|
[React] Toggle Component 애니메이션 구현 (0) | 2024.04.15 |
[React] axios 사용 시 proxy 설정 방법(CRA, Vite) - CORS관련 오류 해결하기 (1) | 2024.04.11 |
[React] useEffect를 사용하여 동기 / 비동기 통신 - axios RESTApi호출 (0) | 2024.04.11 |
React에서 <select>문 사용하기 (0) | 2024.04.10 |