Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 단어단위로떨어지기
- 글자들여쓰기
- 웹아이콘
- 그누보드반응형
- npm start
- 아이콘사용법
- vscode git clone
- window 정책변경
- git lab clone
- maxwidth
- googleicon
- 동적객체
- owlcarousel
- 플러그인
- npm install 문제
- 의존성문제
- XEIcon
- fontawesome
- slickslider
- Git clone
- legacy-peer
- 이미지반응형
- package.json
- 정적객체
- node 오류
- minwidth
- MediaQuery
- react npm install
- npm install
- node설치
Archives
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
🟦 [React] onclick={함수()}, onclick={() => 함수()} 차이점 본문
728x90
onclick={함수()} 와 onclick={() => 함수()} 의 쓰임새
=> 사실 차이를 잘 몰라서 뭐가 다른 건지 몰랐는데 혼자 해보니 만들어 보니 알게 됨❗
| onclick={함수()} | onclick={() => 함수()} |
| 렌더링 될 때 실행해버림 (즉시 실행) | click할 때만 함수를 실행 |
✅구현하려고 하는 동작: 탭을 누르면 내가 누른 탭의 index를 받아온다.
내가 했던 방법 👇 => onclick={ handleTabClick(index) }
import { useState } from "react";
import { tabName, tabData } from "../data/tabData";
export default function TabComponent(){
const [activeTab, setActiveTab] = useState(0) // 현재 선택된 탭의 index
const handleTabClick = (index) => {
setActiveTab(index);
console.log(index);
}
return(
<>
test
<ul className="tab-list">
{
tabName.map((tab, index) => (
<li
key={index}
className={activeTab === index ? "active" : ""}
><button onClick={handleTabClick(index)}>{tab}</button></li>
))
}
</ul>
<div className="tab-con-list">
<div className="tab-con"></div>
</div>
</>
)
}
🚫 오류 내용

=> 리렌더링이 너무 많이 되고 있다는 오류!
=> index가 찍히긴 하지만 내가 누르지 않을 때도 계속 찍히고 있음
올바른 방법 👇 => onclick={ () => handleTabClick(index) }
import { useState } from "react";
import { tabName, tabData } from "../data/tabData";
export default function TabComponent(){
const [activeTab, setActiveTab] = useState(0) // 현재 선택된 탭의 index
const handleTabClick = (index) => {
setActiveTab(index);
console.log(index);
}
return(
<>
test
<ul className="tab-list">
{
tabName.map((tab, index) => (
<li
key={index}
className={activeTab === index ? "active" : ""}
><button onClick={() => handleTabClick(index)}>{tab}</button></li>
))
}
</ul>
<div className="tab-con-list">
<div className="tab-con"></div>
</div>
</>
)
}
728x90
'개발 > 🟦 React' 카테고리의 다른 글
| 🟦 [React] 삼항 연산자 사용법 (0) | 2025.03.19 |
|---|---|
| 🟦 [React] 중첩된 객체와 배열 구조 => 가지고 오고 싶은 값 사용하기 (0) | 2025.03.18 |
| 🟦 [React] 모달 창 띄우기2_코드 재사용화, 컴포넌트화 시키기 (0) | 2025.03.17 |
| 🟦 [React] 모달 창 띄우기 (0) | 2025.03.17 |
| 🟦 [React] npm, npx 차이 (0) | 2025.03.17 |
Comments
