묻고 답해요
138만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
상태관리와 SPA
자바스크립트로 SPA 하는법을 꼭 배우고싶었는데강의가 너무 좋아요! 섹션8부터 상태관리하면서 SPA 방식으로 코드를 리팩토링하는데강의에서 알려주시는 방법이약간 리액트의 동작방식과 비슷하다고 봐도 되는걸까요?! 제가 리액트를 얼마전에 배웠는데뭔가 리액트의 내부 동작을 구현하는 느낌으로 생각해도 되는건지..아니면 아예 다른 방식으로 하는건지 궁금해서 여쭤봅니다!!
-
미해결한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
Live Server
코드 관련 질문은 아래와 같이 '코드블럭' 기능을 이용해주세요!+ 오류 메세지도 함께 올려주시면 좋아요 🙂console.log('hello'); 안녕하세요.혹시 Live Server 질문도 같이 올려도 될까요..?효빈님께서 라이브 서버 실행하실 때 127.0.0.1:5000 으로 실행이 되시는데 저는 제 아이피 주소 뒤로 공부하는 폴더의 경로가 전부 찍히게 되어서 window.location.pathname 이 콘솔 창에 안찍히게 되더라구요..VSC에서 Live Server Extensions을 싹 다 지우고 다시 설치해도 초기화가 안되네요..(전에 한 번 Live Server 설정을 건들인 적이 있습니다ㅜㅜ)
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
package.json
안녕하세요 파일에 package.json은 있는데 어떤 내용들 넣으셨어요???
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
template 질문 있습니다.
template = [] template = ""문자열로 초기화 안하고 배열로 초기화 하는 이유가 뭔가요?
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
2-6 함수 강의
안녕하세요 2-6 강의부터 4개- 5개 강의 정도 화면이 검정으로 나오는데저만그런것인지 확인 가능할까요??
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
compare 함수 잘이해안가네요
(a,b)가 어떤걸 의미하는지 모르겠고-1, 1, 0을 반환했을때 배열내부적으로 어떻게 처리되는지도모르겠습니다. let colors = ["green", "blue", "purple"]; const compare = (a, b) => { if (a > b) return -1; else if (a < b) return 1; else return 0; }; colors.sort(compare); console.log(colors);
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
async 질문
const start2 = async () => { try { let result = await Promise.all([workA(), workB(), workC()]); result.forEach((res) => console.log(res)); } catch { console.log(err); } }; 해당 코드에서 반환된 프로미스 객체는 배열의 형태로 result 변수에 저장되는 건가요?
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 2
snackbar를 createportal를 썻을 때 갯수 조절이 가능한가요?
context를 썻을때는 data length로 체크하면 최대 5개가 넘지 않게 더이상 오픈되지 않거나 가장 밑에 스낵바를 닫아 버린다던가 쉽게 구현을 가능할 것 같은데 portal를 쓰면 컨트롤이 가능한가? 궁금합니다
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
this.template 메소드
this.template 메소드를 innerHTML에 할당하는 방식이 아닌 createElement와 appendChild 등으로 해결해도 괜찮나요? 이렇게 하면 변경되지 않은 부분만 체크하여 필요한 부분만 DOM을 다시 추가하는 방식을 사용할 수 있을 것 같은데
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
App의 상태관리?
App 컴포넌트에서 모든 컴포넌트들의 상태가 관리되는 건가요? 컴포넌트들은 각각의 상태를 관리하고 가 상태를 업데이트하면서 상태관리를 하는게 아닌가요? 이건 모든 상태를 App 컴포넌트에서 관리하고 하위 컴포넌트들은 자신의 상태가 될 데이터를 내려받아서 그냥 render만 해주는 느낌이 들어서요 이렇게 되면 App 컴포넌트에서 관리해야 할 상태들이 너무 많아지고 App 컴포넌트가 복잡해지는 거 아닌가요..? 각 컴포넌트에서 독립적으로 본인의 상태를 관리하고 필요에 따라 상위 컴포넌트에서 상태를 전달받아 render 한다..? 이렇게 이해했는데.. 컴포넌트 단위로 개발하는 spa 개발 개념이 좀 부족한건지 이해가 잘 안되네요
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
onClick 함수
$tabBar.forEach((elm) => { elm.addEventListener('click', () => { onClick(elm.id); }); }); 이 onClick 함수 this.onClick으로 호출하지 않았는데,이러면 TabBar 인스턴스의 onClick 메소드는 쓰지 않는 거 아닌가요?
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
consol.log설정
안녕하세요 선생님 제가 설정이 뭔가 틀어졌는지consol.log하면 선생님처럼 console창이 안뜨고이렇게 뜨는데 어떻게 해결할 수 있는 방법이 없을까요? 선생님처럼 콘솔창이 떴으면 좋겠습니다.
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 1
강의자료 github link 404 빈페이지
빈페이지로 나오는데 왜그런걸까요?https://github.com/fe-ui-study/ui-study
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 2
useCallback, useMemo의 차이에 대해서 궁금합니다.
[셀렉트박스 (3/5) headless #2 hook 적용] 부분에서 getTriggerProps/getListProps 처럼 각 컴포넌트가 필요한 것들을 useCallback으로 감싸고 함수형태로 제공해주셨는데요, 아래처럼 useMemo를 이용해서 객체에 값을 담아서 전달해주는 방식은 다른 걸까요??const getTriggerProps = useCallback( () => ({ selectedItem: items[selectedIndex], toggle, }), [selectedIndex, items, toggle] ); const TriggerpropsValue = useMemo(() => { return { selectedItem: items[selectedIndex], toggle, }; }, [items, selectedIndex, toggle]);
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 2
createPortal 활용해서 modal 만들 때 활용한 MutationObserver 코드 관련 질문
import { useEffect, useRef } from "react" const mutationObserverOption: MutationObserverInit = { childList: true, subtree: true } const ModalRoot = () => { const ref = useRef<HTMLDivElement>(null); useEffect(() => { let observer: MutationObserver if (ref.current) { observer = new MutationObserver(() => { const size = ref.current?.childNodes.length || 0 document.body.classList.toggle('no-scroll', size > 0) }) observer.observe(ref.current, mutationObserverOption) } return () => { observer.disconnect() } }, []) return (<div id="modalRoot" ref={ref}/>) } export default ModalRoot; 수업시간에 구현 되었던 코드가 어떤 순서로 동작하는지 콘솔로 확인해봤습니다. 제가 확인해 봤을 땐 처음 페이지가 렌더링 될 때 1. ModalRoot 컴포넌트가 실행 2. modalRoot div가 생성 3. useEffect가 실행4. useEffect의 Clean Up 작동까지는 예상대로 진행되었습니다. 하지만 이후에 이해가 안되는 부분이 있습니다.질문 1) 이후 useEffect가 다시 실행되는데, 의존성도 없는데 어떻게 다시 실행되는지 궁금합니다.질문 2) 영상에서 모달 버튼을 누르면 useEffect의 조건문에서 size를 콘솔로 확인하셨는데, ModalRoot 컴포넌트가 재실행되지 않고 어떻게 size를 확인할 수 있는지 궁금합니다.
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
3. 동물앨범 만들기-2-3 질문입니다.
해당 강의에서 컴포넌트를 만들고 상태관리를 할때 모든 코드에 this가 왜 붙는건가요??저렇게 만든것도 그냥 객체인거 같은데 let state ={} 로안 하고 let도 없고 변수도 없는데 this로 state를 참조되는것도 궁금합니다.모든 코드에 this가 붙는 이유일반함수에 this한거니 그냥 window 객체에 state 변수가 생긴건지 궁금합니다.2가 아니면 그냥 state라는 걸 자바스크립트가 제공해서 참조해서 사용하는것인지this.state = {};
-
해결됨[React / VanillaJS] UI 요소 직접 만들기 Part 2
강의자료 (보일러플레이트) 다운로드 관련 질문
강의 커리큘럼을 보면 "강의자료 (완성본)"과 "강의자료 (보일러플레이트)" 다운로드를 구분해 두셨는데, 다운로드는 "강의자료 (완성본)"만 만 받게 되어 있는거 같습니다.혹시 보일러플레이트 강의자료는 아직 준비가 되지 않은것일까요?완성본 README.md에 있는 `git clone https://github.com/fe-ui-study/ui-study.git`도 Repository를 찾지 못하고 있습니다.
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
name에 계속 줄이 그어지는 이유가 궁금합니다.
코드 관련 질문은 아래와 같이 '코드블럭' 기능을 이용해주세요!+ 오류 메세지도 함께 올려주시면 좋아요 🙂console.log('hello'); 강의에서 보면 name을 선언한 후 typeof에서 name에줄이 쳐져있는데 혹시 왜 그런건지 알 수 있나요?제 컴퓨터에서도 사용하여 봤는데 name은 사용되지 않습니다. 라고 나옵니다
-
해결됨한 번에 끝내는 자바스크립트: 바닐라 자바스크립트로 SPA 개발까지
history api 예제연습에서
history 연습예제에서 뒤로가기 앞으로가기 버튼 눌렀을때는 화면에 제대로 표시되지 않아서요강사님 소스를 여러번 확인해봤는데,,,,뭐가 혹시 틀린걸까요?
-
미해결웹 프론트엔드를 위한 자바스크립트 첫걸음
화면이 다릅니다.
저는 create이라는 부분이 없고 vanilla template을 찾을 수가 없습니다.