게시글
질문&답변
2024.11.18
스니펫 관련질문
안녕하세요 😀 console.log($1) 이렇게 지웟다가 다시 console.log('$1') 해보시겠어요?저도 딱히 신경쓰진 않았지만 지금 테스트해보니 돼서요.
- 0
- 1
- 19
질문&답변
2024.11.18
checkedbox 다중에서 ref 대신 reactive를 쓰면 v-model이 작동 안되는 이유가 궁금합니다.
1. ref를 사용했을 때 동작하는 이유:const checkboxValues = ref([])ref는 값을 .value 속성을 가진 객체로 래핑합니다Vue는 이 래핑된 객체를 추적하고 변경사항을 감지할 수 있습니다v-model은 내부적으로 이 .value에 접근해서 값을 업데이트합니다2. reactive가 동작하지 않는 이유:const checkboxValues = reactive([])reactive는 원본 배열을 직접 반응형으로 만들려고 합니다 하지만 v-model이 배열을 새 배열로 교체하려고 할 때 문제가 발생합니다reactive로 만든 배열의 참조가 끊어지면서 반응성이 사라집니다쉽게 비유하자면:ref는 "상자"를 만들어서 그 안에 배열을 넣는 것입니다. 상자 자체는 그대로 있고 안의 내용물만 바뀝니다.reactive는 배열 자체를 특별하게 만드는 건데, v-model이 새 배열로 교체하면 그 "참조"가 사라집니다.따라서 v-model과 함께 사용할 때는 ref를 사용하는 것이 더 안전합니다.만약 reactive 를 사용하고 싶다면 객체 내부에 속성으로 선언하여 참조가 끊어지지 않도록 해야합니다.const checkbox = reactive({ values: [], });
- 0
- 2
- 31
질문&답변
2024.11.15
노드(express) 연동
안녕하세요 🙂 Next.js를 사용하시면 하나의 소스코드로 프론트엔드와 백엔드를 개발할 수 있습니다. (모놀리식 아키텍처)Next.js의 공식문서를 참고하시면 개발하는 데 도움이 될 것 같아요!https://nextjs.org/
- 0
- 2
- 28
질문&답변
2024.11.13
submit click 동작과 PostDetailView 질문있습니다.
안녕하세요 🙂 답변1) button 태그의 기본 type은 submit 입니다. 그러므로 form 내에 button 태그를 선언했다면 클릭시 form 의 submit 이벤트가 발생합니다. 참고: HTML, JavaScript 에 대한 기초를 충분히 다지는 것을 권장드립니다. 짐코딩 유튜브 채널에 무료 강의가 있습니다. 답변2) initId 그대로 값 전달String()으로 initId를 감싸게 되면 Vue의 반응성을 잃어요. String(initId)로 변환하는 순간 initId가 더 이상 Vue의 반응형 시스템에 의존하지 않는 일반 문자열로 변환되기 때문에, 이후 initId 값이 업데이트되어도 PostDetailView 컴포넌트에 반영되지 않습니다.반응성을 유지하기 위해 String()으로 감싸지 말고, initId 자체를 그대로 전달하는 것이 좋습니다. PostDetailView 컴포넌트에서 필요한 경우 props 내부에서 String 변환을 적용할 수 있습니다.String 또는 Number를 받을 수 있도록 컴포넌트 내부에서 처리 PostDetailView 컴포넌트에서 props를 받을 때 다양한 타입을 받을 수 있도록 설정할 수 있습니다.defineProps({ id: { type: [String, Number], }, })이렇게 하면 initId의 반응성이 보존되어 값이 업데이트될 때마다 PostDetailView 컴포넌트도 자동으로 업데이트됩니다. 참고: Vue의 반응형 데이터가 String으로 변환될 경우 반응성을 잃을 수 있으므로, 데이터 변환은 가급적 컴포넌트 내부에서 처리하는 것이 좋습니다.
- 0
- 1
- 29
질문&답변
2024.11.11
PostListView 에서 PostDetailView (미리보기) 사용하는곳..
안녕하세요 🙂 인프런 AI 답변을 읽어 보시면 문제가 해결될 수 있을 거예요.만약 그래도 해결이 안된다면 소스코드 Github 주소을 남겨주시면 제가 확인 후 회신 드릴게요.
- 0
- 2
- 33
질문&답변
2024.11.11
FetchPost 에서 form(ref)에 값 전달시
안녕하세요 🙂 1) form.value = { ...data };이 방법은 전개 구문을 사용하여 form.value에 새로운 객체를 할당하는 것입니다. 이로 인해 Deep Copy와 유사한 효과를 내며, 원본 객체의 얕은 복사본이 생성됩니다.2) form.value = data;이 방법은 data 객체의 참조값을 form.value에 할당하는 것으로, Shallow Copy입니다. 원본 객체를 참조하므로, form.value와 data는 동일한 객체를 가리킵니다.자바스크립트 객체에 대해 명확히 이해하지 못했다면 해당 문법이 이해가 안될 수 있어요. 자바스크립트 객체, Shallow Copy vs Deep Copy 에 대한 개념을 정확히 숙지 하신다면 앞으로 공부를 더 수월하게 할 수 있어요.제 유튜브채널에 무료강의가 있으니 시간내어 보시는 것을 권장드려요 👍자바스크립트 무료 강의
- 0
- 2
- 26
질문&답변
2024.11.01
npm vue 버전
안녕하세요 🙂 npm install vue@3.1.9 가 아니라 npm init vue@3.1.9 또는 npm create vue@3.1.9 입니다 👍install --> init
- 0
- 1
- 35
질문&답변
2024.10.31
eslinttrc.cjs 파일이 안떠요
안녕하세요 🙂 관련 라이브러리가 업그레이드 되면서 프로젝트 생성시 초기 구성이 다를 수 있는데요 아래 회차를 확인해 주시겠어요?프로젝트 구성시 참고 회차ESLint, Prettier 회차 설명란참고로 라이브러리 업데이트 관련해서 추가영상은 제작을 기획하고 있어요. 다음달 정도에 업데이트 할 예정이기에 완료 후 새소식으로 공지하도록 할게요 🙂
- 0
- 2
- 52
질문&답변
2024.10.27
v-model 디렉티브 인자 사용
안녕하세요 🙂 사용자 정의 컴포넌트에서도 modelValue 뿐만 아니라 다중 v-model 도 사용할 수 있어요.LabelTitle 컴포넌트 안에서 props 와 emits 이 잘 선언되어 있는지 확인이 필요해 보여요props - 'title', emits - 'update:title' 이 잘 설정되어 있는지 확인해보시겠어요?
- 0
- 2
- 53
질문&답변
2024.10.23
esLint 건드리다가 뭘 잘못건드렸는지..
안녕하세요.깃헙 URL을 공유해 주실 수 있을까요?말씀하신 내용으로 원인을 파악하기가 힘들어서요 🥲
- 0
- 2
- 35