| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- spring security 로그인
- Docker
- 스프링 시큐리티 로그인
- 리액트 심플캡차
- react simple captcha
- spring error
- Spring Boot
- react 심플캡차
- Spring Security
- build
- maven
- react 상태
- ChatGPT
- 깃
- jpa
- react captcha
- 스프링 시큐리티
- 스프링
- myBatis
- Security 로그인
- react 캡차
- SpringBoot
- 리액트 캡차
- 에러
- react 자동입력방지
- 젠킨스
- git
- CI
- REACT
- error
- Today
- Total
I can do it(Feat. DEV)
React 동적으로 style 추가 본문
비가 주륵주륵 오는 걸 감상하며 평화롭게 프로젝트 프론트단을 만들던 중
리액트에서 스크립트 기능이 필요해짐.
예를 들어 상단 메뉴에 마우스를 올렸을 때 숨겨진 서브 메뉴를 보여주는 기능,

이런 탭 클릭했을 때 임팩트주는 기능 등등...
동적으로 style 입혀주는데 스크립트로 원래 하던것처럼
document.getElementById(id).style.color = 'red';
이런 식으로 ID 값을 추적하는 방식으로 할려고 했으나
생각해보니 리액트는 다른 방법이 있을 것 같아서 갓글에 검색.
검색해보니 useState라는 리액트 훅으로 상태를 사용해 동적으로 style을 변경할 수 있다고 함.
위의 공지사항, Q&A 탭을 선택했을 때 style을 변경하는 기능을 만들어 봄.
import React, { useState } from 'react';
먼저 import 해서 불러옴.
const [boardState, setBoardState] = useState("notice"); //기본 공지사항
//boardState : 선택한 탭 상태를 의미
//setBoardState : 탭 상태를 변경할 수 있는 함수
먼저 useState를 선언하는데 기본적으로 useState는 배열을 반환하며 첫번 째 원소는 상태값이고, 두번 째 원소는 상태를 변경할 수 있는 함수임.(자세한건 검색해보시면 좋음!)
default 상태를 공지사항이라서 notice를 넣어 줌.
상태는 자기마음대로 boolean 값을 넣어도 되고 string 값을 넣어도 됨.
<ul> //해당 탭 코드
<li
className={
boardState === "notice" ? "noticeBtn cmBtn" : "noticeBtn"
}
onClick={() => {
setBoardState("notice"); //공지사항 클릭 시 상태를 notice로 변경
}}
>
<Link to="#">공지사항</Link>
</li>
<li
className={boardState === "qna" ? "qnaBtn cmBtn" : "qnaBtn"}
onClick={() => {
setBoardState("qna"); //Q&A 클릭 시 상태를 qna로 변경
}}
>
<Link to="#">Q & A</Link>
</li>
</ul>
className 부분을 보면 boardState 상태가 notice or qna 인지 체크를 하여 class를 추가함.
필자는 cmBtn이라는 class를 미리 css 설정을 해놓음. 각자 원하는 style을 설정하면 될 듯.

처음 화면에는 당연히 공지사항에 style이 입혀져 있음.

onClick 함수를 사용해 클릭했을 때 상태 변경 처리함.
리액트를 하면서 느낀점은 리액트는 상태관리가 중요하다는 점, css도 상태를 이용해 설정이 가능하다는 점이 새로웠음.
다음번엔 좀 더 심화된 기능을 개발해봐야겠음. 끝.
📢참조
https://devbirdfeet.tistory.com/54
React(24) 리액트 훅 useState란
Updated 2023/02/23 React Hook은 함수형 컴포넌트에 기능을 추가할 때 사용하는 함수다. 함수형 컴포넌트에서 상탯값을 사용할 수 있고 자식요소에 접근 할 수도있다. 내가 이해한 상태값? 사용자가 웹
devbirdfeet.tistory.com
https://programming119.tistory.com/100
[JS] event.preventDefault() 간단 설명 😊/ preventDefault란?
preventDefault 란? a 태그나 submit 태그는 누르게 되면 href 를 통해 이동하거나 , 창이 새로고침하여 실행됩니다. preventDefault 를 통해 이러한 동작을 막아줄 수 있습니다. 주로 사용되는 경우는 1. a 태
programming119.tistory.com
'개발자 모드 > 응용' 카테고리의 다른 글
| React 게시판 목록 날짜 별로 정렬하기 (2) | 2022.10.14 |
|---|---|
| Spring Security passwordEncoder 설정 관련 (0) | 2022.10.12 |
| React 팝업창 띄우기(2) - 하루 동안 보지 않기 (0) | 2022.10.07 |
| React 팝업창 띄우기(1) (0) | 2022.10.06 |
| [React]Router Props (0) | 2022.09.28 |