-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[염성진] Sprint6 #194
The head ref may contain hidden characters: "React-\uC5FC\uC131\uC9C4-sprint6"
[염성진] Sprint6 #194
Conversation
* 웹 페이지 resize 시 페이지 크기에 맞는 fetch query 값으로 GET 리퀘스트 제출합니다. * 받아온 데이터를 화면에 반응형으로 그려줍니다.
* 메인(홈)페이지 전환 완료했습니다. * Login 페이지 작업 중입니다.
* 미완성이기에 모바일 UI과 기능만 구현하였습니다.
* 기존에 모바일 UI만 작업하여 데스크톱, 태블릿 UI를 추가하였습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
react에서는 .jsx 로 사용하는 게 대부분이니까 이제 저렇게 바꿔보세요!
사실 .js vs .jsx 는 진짜 별 차이가 없습니다만 jsx를 사용하면 react를 사용한다를 티를 낼 수 있는 정도..? ㅎㅎ
질문 주신건 오늘 멘토링에서 말씀드렸으니 해결됬을 거 같구용
이번주도 화이팅이에요!
useEffect(() => { | ||
const handleKeyDown = (e) => { | ||
if (e.key !== 'Enter') return; | ||
e.preventDefault(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 e.preventDefault();
를 사용해주신 이유가 따로 있을까요?
(질문의 의도는 기본 동작을 막을땐 신중해야하기 때문이에요!)
}; | ||
document.addEventListener('keydown', handleKeyDown); | ||
return () => { | ||
document.removeEventListener('keydown', handleKeyDown); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clean up 너무 좋구요!
|
||
// 입력값 감지 후 조건 충족 시 등록 버튼 활성화 | ||
useEffect(() => { | ||
function validation({ tags, price, description, name } = values) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{ tags, price, description, name } = values 가 파라미터로 필요한 부분이 아니고 값을 외부에서 가져와서 구조 분해를 한거라면
함수 코드 내부에서 진행하셔도 좋을 것 같네요!
<section> | ||
<div className="section-box"> | ||
<img | ||
src={require('../../assets/images/mainPage/Img_home_hot_item.png')} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
컴포넌트 밖 상단에서 따로 불러오는 걸 추천해요!
import HotItem from '../../assets/images/mainPage/Img_home_hot_item.png'
<img src={HotItem} alt='HotItem' />
</div> | ||
</div> | ||
<img | ||
src={require('../../assets/images/mainPage/Img_home_item_search.png')} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
require() vs import 기능적인 차이는 없지만 그래도 알아두면 좋을 내용들이 아티클에 있어서 읽어보시길 추천!
https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-require-%E2%9A%94%EF%B8%8F-import-CommonJs%EC%99%80-ES6-%EC%B0%A8%EC%9D%B4-1
} | ||
}; | ||
|
||
if (pageWidth < 768) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
요걸 객체 프로그래밍 방식으로 변환한 예시를 보여드릴게요!
어떤 게 더 편해보이시는지 판단해보셔도 좋을 거 같아요!
const pageWidthSizes = {
768: {upperSize: '1', lowerSize: '4'},
1199: {upperSize: '2', lowerSize: '6'},
}
const upperSize = pageWidthSizes[pageWidth].upperSize ?? '4'
const lowerSize = pageWidthSizes[pageWidth].lowerSize ?? '4'
fetchData(upperSize, lowerSize, order)
요구사항
기본
심화
주요 변경사항
모바일 버전 UI만 구현되어 있습니다 추후 다른 버전도 추가 예정입니다.( 추가 완료 )스크린샷
멘토에게