inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

[리팩토링] state 속성 적용

state 와 v-model에 대해서 질문이 있습니다.

해결된 질문

327

ㅊㅇㅌ

작성한 질문수 3

0

강의 내용 TodoInput.vue 파일 중

<input type="text" v-model="newTodoItem" v-on:keyup.enter="addTodo">

부분에 v-model="newTodoItem" 을 사용하였습니다.
이는 data 속성에 사용되었는데

<input v-model="newTodoItem">
computed:{
...mapState(['newTodoItem'])
}

다음과 같은 느낌으로 v-model은 왜 state를 사용하지 않는 이유가 따로 있는지 궁금합니다!

개인적으로 실험해봤을 때는 readonly로만 사용하라고 되어있는데 스택오버플로에선 사용한 사람도 있는 것 같기도 하고 무엇이 맞는지 궁금해용

javascript vue.js es6 vuex

답변 1

1

인프런 AI 인턴

안녕하세요 ㅊㅇㅌ 님, 인프런 AI 인턴이에요.

v-model은 Vue.js에서 양방향 데이터 바인딩을 구현하기 위한 디렉티브입니다. v-model은 입력된 값을 자동으로 컴포넌트의 data 속성에 바인딩하고 변경된 값을 자동으로 업데이트합니다.

일반적으로 v-model은 사용자 입력을 받는 폼 요소에 많이 사용됩니다. 따라서 v-model을 사용할 때 data 속성에 상태를 저장하고, 사용자의 입력 값을 data 속성에 업데이트하는 것이 일반적인 패턴입니다.

하지만 v-model을 사용하여 data 속성 외부의 상태를 바로 연결하는 경우도 가능합니다. 이 경우 computed 속성을 사용하여 연결하게 됩니다. 즉, v-model을 통해 바로 외부 상태에 접근하여 값을 가져오거나 업데이트 하는 것이 가능합니다.

따라서 v-model을 사용하여 state를 직접 사용하지 않는 이유는 코드의 단순화와 가독성을 위해서입니다. v-model을 통해 값이 업데이트되면, 해당 값을 computed 속성을 통해 state와 연결하여 사용할 수 있기 때문입니다.

readonly로 v-model을 사용하는 것은 입력 필드를 읽기 전용으로 만들기 위한 방법 중 하나입니다. 그러나 v-model은 주로 사용자 입력을 받는 양방향 바인딩을 위해 설계된 기능이므로, readonly로만 사용하는 것은 권장되지 않습니다.

이러한 이유로, v-model을 통해 state를 바로 사용하지 않고 computed 속성을 통해 사용하는 것이 일반적인 패턴입니다. 감사합니다!

0

ㅊㅇㅌ

AI 왜이리 고수임...?

즉 v-model 쓸꺼면 state 대신 computed 사용하는게 맞죵?

Chrome 개발자 모드 확장이 안됨

0

265

1

깃 권한 요청드립니다

0

118

1

vue.js 중급 리포지토리 권한 관련

0

118

1

vuex + axios 질문 있습니다!

1

198

2

깃 권한 요청드립니다!

0

161

1

강의 깃주소 문의

0

144

1

router-view에 props를 어떻게 넘길 수 있나요?

1

281

2

Vue가 인식되지 않는 현상

0

207

1

기초강좌는 어디있나요?

1

190

2

App.vue가 필요한 이유

0

192

1

getter가 정의되어 있지 않아 오류가 발생합니다.

1

254

1

뷰 라이프사이클

1

188

1

TSLint 말고 TSLint Vue 설치해도 되나요?

1

368

3

로컬 스토리지는 어디에 있나요?

1

281

1

vuex 실행시 새로고침해야지만 리스트에 나타나는 현상

1

389

2

export default 관련한 질문

0

354

2

깃허브 vue-todo 접근불가에 따른 확인요청

1

354

2

깃허브에 문제있는것 같습니다.

1

273

2

인프런 강의 재생 화면 구성 변경 문의드립니다

1

306

2

addTodo Helper 함수 적용

1

243

1

vuex 헬퍼 전역 설정

1

248

2

github 권한요청드립니다.

1

258

2

이벤트 위치에 대한 궁금증 입니다.

1

224

2

구조 차이에 대한 문의

1

345

2