| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 수제비
- 백엔드
- Redux
- useState
- It
- 정보처리기사 실기
- Front-End
- security
- JS
- spring boot security
- 리액트
- Authentication
- 스프링부트
- spring boot
- React
- JWT
- 백엔드개발자
- frontend
- TypeScript
- JavaScript
- 큐넷
- 자바스크립트
- spring
- VUE
- Node.js
- TS
- 타입스크립트
- 정보처리기사
- 프론트엔드
- 웹개발자
- Today
- Total
목록frontend (10)
솔적솔적
오늘의 글은window.location.reload()가 위험할 수 있는 이유와,React 프로젝트에서의 더 좋은 새로고침 전략에 대해서 정리해보고자한다. 버튼 클릭 시 “새로고침”이 필요하다는 요구사항을 종종 만납니다. 흔히 떠올리는 건 바로window.location.reload();하지만, 구현하면서 항상 생각해야한다.이 코드가 우리 프로젝트에 적합한 코드인가? 왜 섣부른 전체 리로드가 위험할까 🤔상태 손실이 되어도 괜찮은가: 메모리 기반 상태(React state, Zustand 등 사용 시) 전부 초기화된다.현재 참여 중인 프로젝트는 i18n을 적용해 한국어/일본어 다국어 선택 기능을 제공하고 있는데,단순히 window.location.reload()를 사용하면 이 상태들도 모두 초기화..
사이드 프로젝트 '같이행' 퍼블리싱 작업 중 프로필 수정 클릭 시 모달이 나오는 형태인데, 이런 에러가 나왔다. 해석하면 보통 한 요소를 다른 요소 안에 중첩하려고 할 때 발생하고. HTML은 이러한 중첩을 허용하지 않는다고 한다. 추측되기론, EditProfileModal.tsx 안에 있는 button요소가 중첩되어 에러를 내는 것같다. 혹시 이전에 만든 공통 컴포넌트에서 전달하는 props 타입이 이상한 것이 아닐까 먼저 확인해보기linkText의 타입은 이상이없는 것같고, 사실, button이 중첩된다하면 간단히 button인 태그를 다른 태그로 바꾸면된다.허나! 직접 DOM 이벤트를 사용하는 경우 TypeScript가 정적분석하기 어려워 핸들러의 타입을 추론하지 못해, 빨간줄이 팍!나올..
오늘은 성능향상 2탄, 원하는 자식컴포넌트의 재렌더링을 막을 수 있는 방법에 대해서 알아보고자한다. | 재렌더링 막는 방법 자식컴포넌트를 우선 하나 생성해보고, Cart안에 넣어놓는다. function Child() { return 자식컴포넌트 } function Cart(){ return ( ... ... )} state만들기 const [count, setCount] = useState(0) 버튼을 눌러 state변경하도록 하기 function Cart(){ const state = useSelector((state)=>{return state}) const dispatch = useDispatch();//store한테 요청을 보내주는 함수임 const [count, setCount] = useSta..
Redux에서 state를 변경하는 방법을 알아보자. 제일 먼저 state 수정해주는 함수를 만들고 함수를 실행해달라고 store.js에 요청해야한다. 1. state 수정하는 함수만들기 : reducers등장 const user = createSlice({ name : 'user', initialState : 'kim', reducers : { changeName(state){ //--> 위의 state를 수정하는 함수를 요기다가 만드는 것 return 'sol' + state } } }) 2. 함수 만든 것을 사용할 수 있게 export해줘야함 const user = createSlice({ name : 'user', initialState : 'kim', reducers : { changeName(..