inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 끝장내기 - 실무에 필요한 모든 것

학습 노트 수정 API 및 기능 구현

컴포넌트 중복에 대한 질문입니다.

643

1-blue

작성한 질문수 7

2

안녕하세요 항상 강의 잘 듣고 있습니다.

강의를 듣다가 생각해 보니 PostEditForm과 PostAddForm이 거의 비슷하게 생겼고 하는 일도 조금의 차이가 있어서 저는 PostForm.vue를 만들고 this.$router.id의 존재 유무에 따라서 기존 데이터를 받아올지 말지 혹은 포스트를 create, edit할지를 결정하도록 만들었습니다.

다 만들고 생각해 보니 컴포넌트는 하나로 사용해서 좋긴 한데 하나의 컴포넌트에서 두 가지 일을 하는 느낌이 들어서 좋은 코드가 아니라고 생각이 들어서 질문드립니다. ( 물론 동작은 정상적으로 동작합니다. )

위와 같은 현상일 때는 하나의 컴포넌트에서 분기 처리하기보다는  Mixin이나 하이 오더 컴포넌트로 하는 것이 맞는 거겠죠? 맞는다면 Mixin이나 HOC 중에 어떤 걸 사용하는 게 더 좋을까요?

javascript vuex vuejs

답변 1

0

캡틴판교

안녕하세요 1blue님, 굉장히 좋은 고민이네요 :) 컴포넌트 설계시 해당 컴포넌트의 역할을 어디까지 잡을 것이냐 하는 문제인 것 같습니다. 저도 초반엔 1blue님과 같은 고민을 많이 했었던 것 같아요. 지금은 서비스 로직이 복잡해지는 경우를 대비해서 생성과 수정 모두 별도의 컴포넌트로 분리해 놓습니다. 1개의 컴포넌트에서 스크립트로 분기를 치기 시작하면 이후의 변경/수정에 대해서 빠르게 대응하기가 어려운 것 같더라구요. 1blue님도 개인적으로 더 고민해 보시고 설계해 보시면 좋을 것 같습니다 :)

node 10버전 사용

0

86

1

강의에 대해 질문 드립니다.

0

76

1

vue CLI 대신 vite를 사용해도

1

164

2

질문삭제

0

171

2

강사님 코드로 진행할 경우 console.log( config); 도 안찍혔어요. instance 를 생성해서 공통으로 사용하셨는데 loginUser 에만 커스텀한 instance를 넣으니 콘솔에 컨피그 객체가 찍혀요

0

102

1

로그인 에러발생만하면 네트워크 커넥션 에러 발생 해결

0

127

1

rndrmagkqslek.

0

79

1

계속 따라하다가 안돼서 bash에 연결할떄 안되더라구요

0

110

1

axios 에러가 뜹니다.

1

249

2

vue3로 진행하시면서 router에서 '*' 적용이 안되시는 분들

2

322

1

vue 관련 다른 강의 출시예정이없으신지 궁금합니다!

1

158

1

AppHeader.vue에 vue 디폴트 만들에 Delete `␍` 오류나면

1

200

1

vue3로 따라오시다가 import axios 에러 뜨시는 분들

2

463

2

$router 를 이용한 메인 페이지로 이동

1

294

1

혹시 node.js 10.24 버전으로 해도 상관없나요?

2

475

2

에러 경로가 LoginForm.vue 43번째줄 말고 다른 경로로 출력됩니다.

1

303

2

pinia 사용할려고 하는데 에러가 나옵니다.

1

496

2

swagger ui의 post/posts에 글 기록하려고 하면 unauthorized 에러가 납니다..

1

1119

2

safari 개발자 도구에 대한 질문입니다

1

579

2

스웨거에 글 등록시 401 에러가 나와요 ㅠ

1

733

2

이 에러 때문에 진행이 안되네요 ㅠ

1

678

1

windows .nvmrc nvm use 실행 오류

1

1559

2

강사님 최신화가 필요해보입니다.

2

965

2

npm i 에러

1

621

1