23.10.16
📚 오늘 공부한 것
- Editor 만들기
단어 그대로 키를 누르면 발생하는게 keydown
, 키보드에서 손을 떼는 순간 발생하는게 keyup
!
키하나를 꾸욱 누르고 있으면 keydown이 계에속 찍히다가 떼는 순간 keyup이 한번 발생한다.
같은 이벤트를 반복시키고, 가장 마지막에 발생한 이벤트만 실행시키는 기법
실습코드에서, 인풋박스에 사용자가 입력을 하기 시작하면 입력값이 바뀔때마다 매번 로컬스토리지에 setItem을 해주었다.
이 입력값이 굉장히 길어지면? 로컬스토리지 작업 아니고 무거운API면?? 효율이 좋지않다. 그럴 때 사용할 수 있다!
let timer = null;
const debounce = (post) => {
if (timer !== null) {//방어코드
clearTimeout(timer);
}
clearTimeout(timer);
timer = setTimeout(async () => {
// <발생시킬 작업>
});
}, 1000)
}
new CustomEvent(type, {
detail:{
키: 밸류
}
})
type
: 커스텀한 이벤트 이름
예시
window.addEventListener("route-change", (e) => {
console.log(e.detail.text)
});
이렇게 커스텀이벤트를 세팅해두고
window.dispatchEvent(
new CustomEvent("route-change", {
detail: {
text: 'HI~',
},
})
);
이렇게 호출할 수 있다. 결과는
HI~
큰 부모 컴포넌트에서부터 작은 조각조각 컴포넌트를 만들었던 지난 실습과 달리, 이번엔 작은 컴포넌트를 만들고 그 상위를 만들며 합쳐갔다. 나 혼자 했더라면 부모 하나를 합칠 때마다 전달 인자나 형식 일관성에 어려움을 겪었을 것 같다.. 나에겐 상위>하위 순서 개발이 더 낫다고 생각했다..
여전히 배워야 할 지식들이 넘친다. 근데 그 과정에서 너무 재밌었다!! 블로그를 쓸 때 '이전 수정중이던 글이 있습니다'와 같은 것에 임시 값 저장과 시간 비교가 쓰였겠구나! 중간중간 글을 임시 저장해주는 것도 디바운스의 역할이였구나! 등 여러 사이트를 통해 익숙했던 기능들의 구현단을 본거 같았다. ux의 끝은 어딘가,,
강의를 듣다보면 강사님도 오류를 만나신다. 나완 다르게 몇초만에 그 원인을 찾아서는 고치신다. 그럼 나는 내 스스로 찾을 기회가 없다고 느꼈다. 그래서 같은 에러가 나는 걸 확인하곤 나혼자 찾아보곤 한다. 이유도 나혼자 찾아본다. 어떻게 해결을 하고 강의를 이어 보고선 내 해결방법이 택도 없이 허접했다고 느낄 때가 많지만 올바르게 찾아냈을 땐 너무 행복하당~~
오늘은 강의 중반부에 오류 하나를 찾았는데, 강사님께선 강의 후반부에서야 찾고 해결해주셨다. 후반부에 해결해주실 줄 모르고 혼자 끙끙 댔다. 비록 내가 찾아낸 방법은 쓰이지 못했지만 그 과정이 의미있게 느껴졌다.
시간이 계속해서 부족해짐을 느끼고 있다 ...
오늘 특강의 결론 "엉덩이 싸움".
시간이 부족한 이유가 있겠지. 더 붙어있어봐야지🔥