Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

한바다

[리액트]navigate 와 Link 외 본문

React

[리액트]navigate 와 Link 외

한바다진화 2024. 8. 21. 21:50

☑️navigate 란 ?

React Router에서 제공하는 기능으로, 사용자를 특정 경로로 이동시키는 데 사용

[예시1]
import {useNavigate} from 'react-router-dom';

const navigate = useNavigate();
<button className='detail-button' onClick={() => navigate(`/chicken-detail/${chicken.id}`)}>
  상세보기</button>
  [예시2]
  import {useNavigate} from 'react-router-dom';
  
  const navigate = useNavigate();
  
  axios.post("/")
  .then(response => {
   alert("답변이 등록되었습니다.")
   navigate("/AdminObo");
   
  [예시3]
  import {useNavigate} from 'react-router-dom';
  const navigate = useNavigate();
  
  if(isAdmin) {
  navigate('/AdminObo);
  }
  [예시4]
  import {useNavigate,useParams} fomr "react-router-dom";
  
  const navigate = useNavigate('');
  
  const navihandle = () => {
     navigate("/CustomerBoard");
  }
  <button className="bbt" onClick={navihandle}>돌아가기</button>
  [예시5]
  import {useNavigate} from 'react-router-dom';
  
  const navigate = useNavigate();
  
  axios.post("/")
  .then(response => {
    alert("글쓰기가 정상적으로 등록되었습니다");
    navigate('/customerBoard');
  }

 

☑️Link

리액트라우터에서 제공하는 페이지간 이동을 처리하는 기능

<Link>를 사용하면 페이지를 새로고침하지 않아도 애플리케이션 내에서 경로를 변경할 수 있다

import {Link} from 'react-router-dom';

<button className='detail-button'><Link to={`/chicken-detail/${chicken.id}`}>
 상세보기</Link></button>

 

☑️ CSS- transform

.chickenform-container button {
  background-color: #28a745;
  color: white;
  border: none;
  border-radius: 5px;
  padding: 10px 20px;
  cursor: pointer;
  /* hover에 적힌 배경색으로 몇초동안 변화할지 설정*/
  transition: background-color 0.1s , font-size 0.5s,font-weight 1s;
}
/*font-weight hover bold 1s 초 이후에 글자 굵기 변경*/
.chickenform-container button:hover {
  background-color: violet;
  font-size: 30px;
  font-weight: bold;
}

☑️ findById(id)  where id = "id" 

특정 값을 찾을 때 쓰는 기능

findById(Integer id); -> where 대신 find

만약에 where 이메일 = ' ' 비밀번호 = ' ' 로그인을 한다 => 레포지토리에 findByEmailPassword where절

[service]
//치킨메뉴 상세보기
public Chicken findById(Integer id) {
  return chickenRipository.findById(id)
          .orElseThrow(() -> new RuntimeException
                             ("일치하는 정보를 찾을수 없습니다"));
}
[컨트롤러]
@GetMapping("{id}")
public Chicken getChickenByid(@PathVariable("id) Integer id) {
   return chickenService.findById(id)
}