티스토리 뷰
반응형
Route 사용시 유용한 Component 및 hook
Link
'react-router-dom'에서 import 해서 사용할 수 있는 Component
페이지를 이동시킬 수 있음
<Link to="/경로">home</Link>
useHistory()
Link 처럼 페이지를 이동 시킬 수 있는 hook
'react-router-dom'에서 import 해서 사용
let history = useHistory();
- 페이지 이동내역 + 다양한 함수가 저장된 objcet{} 자료 형태
<button onClick = {()=>{
history.goBack();//뒤로가기
history.push('/')//원하는 경로로 이동
}}>뒤로가기</button>
Switch
- 매치되는 Route들을 전부 보여주지말고 한번에 하나의 Route만 보고싶을때 사용(맨 위에꺼 부터 보임)
<Switch>
<Route path="/detail/:id">
<Detail menu={menu}/>
</Route>
<Route path="/:id">
<div> 아무거나 적었을때 보여주는 페이지</div>
</Route>
</Switch>
useParams
URL에 있는 파라미터를 사용할 수 있는 hook
'react-router-dom'에서 import 해서 사용
let {id} = useParams();
- URL에 적혀있는 모든 파라미터를 {파라미터1,파라미터2...} 으로 저장해주는 함수(hook)
useEffect
Component의 LifeCycle에 hook을 걸때 사용
hook을 이용해 Component에게 로드 될때, 사라지기전에, State가 업데이트 될때 명령을 내릴 수 있음
hook의 정확한 명칭은 LifeCycle
기존 Class로 Component를 만들어서 사용할 경우 아래와 같이 사용
class Detail2 extends React.Component {
componentDidMount(){
//Detail2 컴포넌트가 Mount 되고나서 실행할 코드
}
componentWillUnmount(){
//Detail2 컴포넌트가 Unmount 되기전에 실행할 코드
}
}
- function 컴포넌트로 생성 시, 아래와 같이 사용
import React, {useState, useEffect} from 'react';
function Detail(){
useEffect(()=>{
//코드를 적습니다 여기
});
return (
<HTML많은곳/>
)
}
useEffect(()=>{//allowFunction},[]) 으로 작성시 [] 안에 useEffect()가 실행될 조건을 넣을 수 있음
useEffect()가 실행되는 경우
컴포넌트가 로드 될때 한번
State가 변경될때 실행됨
[]를 작성하지 않을시, 아무 State가 변경될때마다 실행됨
[]안에 조건을 작성시, 조건에 맞는 State가 변경될때만 실행됨
[]안에 조건을 작성하지 않을시, 페이지가 로드될때 1번만 실행되고 더 이상 실행되지 않음
- 컴포넌트가 종료될때
return 으로 작성된 코드부분 실행
여러개의 useEffect()함수 작성 가능함, 위에서 부터 순차적으로 실행
- UI 를 일정 시간이 지나면 변경해야할 일이 많은데, 아래와 같이 작성하면 됨
/*
1. Ui State 생성
2. 지정된 시간이 지나면 Ui State를 false 처리
3. return에 clearTimeout() 함수를 사용하여, 지정된 시간이 지나기전에 홈페이지가 변경될 경우 SetTimeout() 함수가 발생시키는 에러 방지
*/
let [Ui,UiChange] = useState(true);//UI Switch
useEffect(()=>{
let timmer = setTimeout(()=>{UiChange(false)},2000);
return ()=>{clearTimeout(timmer)}//
},[Ui]);
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- reack-cookies #아이디 저장하기 #react 아이디 저장 #react cookie #리엑트 아이디 저장하기
- PDF #pdfkit
- Procedure #mysql #mysql Procedure #mysql 반복문 #Procedure 반복문 #mysql insert 반복문
- FormData #FormData 파일전송 #FormData append json # React FormData File #React FormData append Json
- react #react-spinners #modal loading #overlay #로딩창 #react 로딩창 만들기
- JavaScript #Programmers #lvl2 #프로그래머스 오픈채팅방 # 오픈채팅방 문제
- Express multer #Express File 저장 #node.js
- mysql date between performance
- React filter #js Includes #React Filter includes
- supported: linux/amd64
- AWS #인바운드 #SSH #인스턴스 연결
- BOJ #JS
- Pytorch #Yolov5 #Segementation
- docker # docker build # m1 docker build
- Swal #sweetalert2 #alert #알림창 띄우기 #react swal
- node.js #node.js pdf만들기 #node.js pdfkit
- PoolCluster : Error: connect ECONNREFUSED 127.0.0.1:3306)
- 이미지 전송 # 이미지 업로드 #이미지 여러장 #이미지 여러장 업로드 #react 이미지 업로드 #react 이미지 여러장 업로드
- node.js 파일 저장
- react #img 전송
- excel 파일 만들기 #node.js #express excel 파일 만들기 #데이터 입력해서 excel 파일 만들기
- docker mysql
- see ec2 instance connect prerequisites at https://docs.aws.amazon.com/awsec2/latest/userguide #인스턴스 연결 안됨
- linux/amd64/v2
- mysql date
- Mac docker.for.mac.host.internal
- mysql date type
- ec2 instance connect is unable to connect to your instance. ensure your instance network settings are configured correctly for ec2 instance connect. for more information
- mysql date between # mysql date between 대소 비교 연산자
- ERROR: failed to solve: no support for running processes with linux/amd64/v3 platform
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함