Vue.js—v- 모델과 v- 바인드의 차이점
나는 온라인 과정을 배우고 있으며 강사는 기본값으로 입력 텍스트를 만드는 연습을주었습니다. v-model을 사용하여 완성했지만 강사는 v-bind : value를 선택했는데 그 이유를 이해할 수 없습니다.
누군가이 두 가지의 차이점과 각각을 더 잘 사용할 때의 간단한 설명을 해 줄 수 있습니까?
에서 여기 - 기억 :
<input v-model="something">
본질적으로 다음과 같습니다.
<input
v-bind:value="something"
v-on:input="something = $event.target.value"
>
또는 (약식 구문) :
<input
:value="something"
@input="something = $event.target.value"
>
양식 입력에 대한 양방향 바인딩도 마찬가지 v-model
입니다 . 그것은 결합 하는 JS 값 가져 마크 업에, 그리고 할 JS 값을 업데이트 .v-bind
v-on:input
가능하면 사용하십시오 v-model
. 당신이해야 할 때 v-bind
/ 사용 v-on
:-) 나는 당신의 대답이 받아 들여지기를 바랍니다.
v-model
모든 기본 HTML 입력 유형 (텍스트, 텍스트 영역, 숫자, 라디오, 확인란, 선택) 과 함께 작동합니다 . 모델이 날짜를 ISO 문자열 (yyyy-mm-dd)로 저장 v-model
하는 input type=date
경우 사용할 수 있습니다 . 모델에서 날짜 개체를 사용하려면 (조작하거나 형식을 지정하자마자 좋은 아이디어입니다) 이렇게하십시오 .
v-model
알아두면 좋은 몇 가지 추가 정보가 있습니다. IME (많은 모바일 키보드 또는 중국어 / 일본어 / 한국어)를 사용하는 경우 단어가 완성 될 때까지 (공백을 입력하거나 사용자가 필드를 떠날 때까지) v-model이 업데이트되지 않습니다. v-input
훨씬 자주 발사됩니다.
v-model
또한 수정이있다 .lazy
, .trim
, .number
, 덮여 다큐먼트 .
간단하게 말하면 v-model
위한 양방향 바인딩 방법 : 당신이 입력 값을 변경하는 경우, 바인딩 된 데이터가 변경되고 그 반대의 경우도 마찬가지됩니다 .
그러나 v-bind:value
호출 결합 편도 : 즉 그 는 바인딩 데이터를 변경하여 입력 값을 변경할 수 있지만,이 요소를 통해 입력 된 값을 변화시킴으로써 바운드 데이터를 변경할 수 .
이 간단한 예를 확인하십시오 : https://jsfiddle.net/gs0kphvc/
v- 모델
그것은 양방향 데이터 바인딩이며, 입력 값을 변경할 때 html 입력 요소를 바인딩하는 데 사용되며 바인딩 된 데이터가 변경됩니다.
v-model은 HTML 입력 요소에만 사용됩니다.
ex: <input type="text" v-model="name" >
v- 바인드
그것은 한 가지 방법으로 데이터 바인딩이며, 입력 요소에만 데이터를 바인딩 할 수 있지만 제한된 데이터 변경 입력 요소를 변경할 수는 없습니다. v-bind는 html 속성
ex 를 바인딩하는 데 사용됩니다 .
<input type="text" v-bind:class="abc" v-bind:value="">
<a v-bind:href="home/abc" > click me </a>
사용하지 않으려는 경우가 있습니다 v-model
. 두 개의 입력이 있고 서로 의존하는 경우 순환 참조 문제가 발생할 수 있습니다. 일반적인 사용 사례는 회계 계산기를 만드는 경우입니다.
이러한 경우 감시자 또는 계산 된 속성을 사용하는 것은 좋지 않습니다.
대신, v-model
위의 답변이 나타내는 것처럼 당신을 가져 와서 나누십시오.
<input
:value="something"
@input="something = $event.target.value"
>
실제로, 이런 식으로 논리를 분리하는 경우 아마도 메소드를 호출 할 것입니다.
실제 시나리오에서 다음과 같이 보입니다.
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input :value="extendedCost" @input="_onInputExtendedCost" />
<p> {{ extendedCost }}
</div>
<script>
var app = new Vue({
el: "#app",
data: function(){
return {
extendedCost: 0,
}
},
methods: {
_onInputExtendedCost: function($event) {
this.extendedCost = parseInt($event.target.value);
// Go update other inputs here
}
}
});
</script>
참고URL : https://stackoverflow.com/questions/42260233/vue-js-difference-between-v-model-and-v-bind
'development' 카테고리의 다른 글
Java Collections Framework 구현에 대한 큰 요약? (0) | 2020.06.10 |
---|---|
Xamarin.Forms와 Xamarin Native를 언제 사용해야합니까? (0) | 2020.06.10 |
실제로 병합하지 않고 병합을 테스트하는 방법 (0) | 2020.06.10 |
jQuery에서 select 태그의 옵션 태그 수 계산 (0) | 2020.06.10 |
파이썬의 사전에서 모든 값을 추출하려면 어떻게합니까? (0) | 2020.06.10 |