이태홍
홍'story
이태홍
전체 방문자
오늘
어제
  • 분류 전체보기 (171)
    • TW (39)
    • AI (47)
      • 자연어 처리 (10)
      • Kaggle (2)
      • Machine Learning (26)
      • Computer Vision (0)
      • Deep Learning (0)
      • ROS2 (7)
    • Computer Science (29)
      • Data Structure (0)
      • Algorithm (18)
      • Computer Architecture (5)
      • SOLID (0)
      • System Programing (6)
    • LOLPAGO (10)
      • 프론트엔드 (10)
      • 백엔드 (0)
    • BAEKJOON (2)
    • React (5)
    • 언어 (8)
      • C++ (8)
    • GIT (0)
    • MOGAKCO (19)
    • 미국 여행기 (3)
    • etc. (7)
      • Blog (2)
      • 콜라톤 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • kaggle
  • ML
  • Ai
  • algorithm
  • ROS2
  • NLP
  • 머신러닝
  • tw
  • 백준
  • pytorch
  • computerscience
  • 딥러닝
  • 경사하강법
  • computer architecture
  • 알고리즘
  • react
  • 기계학습
  • C++
  • LOLPAGO
  • baekjoon

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
이태홍

홍'story

[LOLPAGO] React 설치 및 Header 구성(4)
LOLPAGO/프론트엔드

[LOLPAGO] React 설치 및 Header 구성(4)

2024. 2. 26. 23:37

🚗 useEffect를 이용한 Header 구성

 

useEffect를 이용하여 이벤트가 발생할 때 화면을 렌더링 할 수 있다.

 

아래의 링크를 참고하여 useEffect와 usLocation에 대해 알아보고 오는 것을 추천한다.

 

https://2t-hong.tistory.com/175

 

[React] 리액트 훅스(2) - useEffect

🚗 useEffect 리액트 훅스에서 가장 중요하다고 생각하는 useEffect이다. 어떠한 컴포넌트가 마운트 됐을 때, 업데이트 될 때, 마운트 해제되었을 때 특정 작업을 처리할 코드를 실행시킬 때 사용할

2t-hong.tistory.com

 

https://2t-hong.tistory.com/176

 

[React] 리액트 훅스(3) - useLocation, useNaviation

🚗 useLocation 리액트 훅스에서 useLocation은 현재의 URL을 대표하는 location 객체를 반환한다. 이전 블로그에서 확인했던 것과 같이 URL이 바뀔 때마다 새로운 location을 반환하는 useState처럼 생각할 수

2t-hong.tistory.com

 

 

useEffect를 이용하여 Header를 구성해보자.

 

우선 우리가 구성할 페이지는 검색을 담당할 '메인'페이지,

 

챔피언 분석을 할 때 볼 수 있는 '챔피언 분석'페이지,

 

경기가 끝난 이후 경기력을 비교할 수 있는 '경기력 비교'페이지,

 

경기 시에 상대 승률이 좋은 챔피언을 추천해주는 'AI챔피언 추천'페이지 총 4가지 페이지로 구성해보겠다.

 

이를 구성하기 위해서 useEffect를 사용하려고 한다.

 

우리는 location이 변경될 때마다 렌더링을 해야 하므로 아래와 같이 작성할 수 있다.

 

const location = useLocation();

useEffect(() => {
    const path = location.pathname;

}, [location]);

 

 

내부에 들어갈 내용은 우리가 선택한 메뉴에 맞는 경로로 변경되도록 하는 알고리즘이다.

 

이는 다음과 같이 작성할 수 있다.

 

import { LOGO } from 'assets/images';
import { Image } from 'components/img';
import styled from 'styled-components';
import { useEffect, useState } from 'react';
import { useNavigate, useLocation } from 'react-router-dom';

const HeaderDiv = styled.div`
	width: 100%;
	box-sizing: border-box;
	padding: 20px 80px 0;
`;

const Header = () => {
	const [selected, setSelected] = useState('메인');
	const location = useLocation();
	const navigate = useNavigate();

	useEffect(() => {
		const path = location.pathname;

		if (path === '/') {
			setSelected('메인');
		} else if (path === '/champAnalyze') {
			setSelected('챔피언 분석');
		} else if (path === '/matchCompare') {
			setSelected('경기력 비교');
		} else if (path === '/AISuggestion') {
			setSelected('AI챔피언 추천');
		} else {
			setSelected('');
		}
	}, [location]); 


	return (
		<HeaderDiv>
			<Image src={LOGO} alt="LOLPAGO" />
			<button onClick={() => navigate('/')}>메인</button>
			<button onClick={() => navigate('/champAnalyze')}>챔피언 분석</button>
			<button onClick={() => navigate('/matchCompare')}>경기력 비교</button>
			<button onClick={() => navigate('/AISuggestion')}>AI챔피언 추천</button>
			<span>{selected}</span>
		</HeaderDiv>
	);
};

export default Header;

 

 

 

아래를 확인하면 각 버튼을 눌렀을 때 URL과 span이 변경되고 있다는 것을 알 수 있다.

 

 

 

 

 

 

'LOLPAGO > 프론트엔드' 카테고리의 다른 글

[LOLPAGO] React 설치 및 Header 구성 완료(6)  (0) 2024.02.27
[LOLPAGO] React 설치 및 Header 구성(5)  (0) 2024.02.27
[React] 리액트 훅스(2) - useEffect  (0) 2024.02.23
[LOLPAGO] React 설치 및 Header 구성(3)  (0) 2024.02.23
[LOLPAGO] React 설치 및 Header 구성(2)  (1) 2024.02.21
    'LOLPAGO/프론트엔드' 카테고리의 다른 글
    • [LOLPAGO] React 설치 및 Header 구성 완료(6)
    • [LOLPAGO] React 설치 및 Header 구성(5)
    • [React] 리액트 훅스(2) - useEffect
    • [LOLPAGO] React 설치 및 Header 구성(3)
    이태홍
    이태홍
    공부하자 태홍아

    티스토리툴바