Vue: 새로운 사후 대응 속성을 추가하기 위한 다른 옵션?
반응하는 속성을 추가하는 다양한 방법을 이해하려고 합니다.루트 레벨에 직접 속성을 추가할 수 없다는 것을 알고 있기 때문에 루트 레벨에는user
데이터 내의 객체 세트:
data() {
return {
user: {
}
}
}
여기서부터가 헷갈리는 부분인데, 왜냐하면 의사 선생님들이 말하길Vue.set
는 오브젝트에 새로운 리액티브속성을 추가하는 방법입니다.이 예에서는 다음과 같습니다.Vue.set(this.user, 'first_name', 'Bob')
다만, 다른 어프로치를 시도하고, 그 안에서 다음의 조작을 실행시키는 버튼을 만들었습니다.
testFunc() {
let names = ["Bob", "Vin", "Mark"]
this.user.test_property = names[Math.floor(Math.random() * names.length];
}
그리고 이게 먹혔어요Vue Dev 툴로 테스트하여 속성을 확인했습니다.test_property
오브젝트에 추가되어 버튼을 클릭할 때마다 오브젝트가 변경됩니다.이게 왜 효과가 있을까요?Vue.set()
새로운 반응적 특성을 만드는 유일한 방법인가요?
마지막으로 다음과 같이 하면<input v-model="user.other_new_property" />
이 트랙은 새로운 속성에서도 변경됩니다.이것도 왜 동작하는지는 잘 모르겠습니다.표시하다
옵션 api와 함께 Vue v2를 사용하고 있는 것 같습니다.그런 경우에는 간단하게 할 수 있습니다.this.property_name = value;
템플릿에서 액세스할 수 있습니다.
물론이야.this.user.test_property
속성을 추가할 수 있습니다.test_property
오브젝트에 접속합니다.하지만 이 특성은 반응하지 않습니다.
new Vue({
el: '#app',
data() {
return {
user: {}
}
},
created() {
this.user.name = 'a name'
},
methods: {
changeName () {
this.user.name = 'b name'
},
changeAge () {
this.user.age = '23'
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<p>{{ user.name }}</p>
<input v-model="user.age" />
<button @click="changeName">click me to change name</button>
<button @click="changeAge">click me to change age</button>
</div>
언급URL : https://stackoverflow.com/questions/66416841/vue-different-options-to-add-a-new-reactive-property
'IT이야기' 카테고리의 다른 글
후드 아래에서 예외는 어떻게 구현됩니까? (0) | 2022.07.23 |
---|---|
'int main(){return(0); }'의 부동소수점 예외(SIGFPE) (0) | 2022.07.23 |
v-model에서 입력 유형="file"을 지원하지 않습니다. (0) | 2022.07.23 |
vue.js에서 개체를 포함하는 데이터 어레이를 표시하는 방법 (0) | 2022.07.23 |
C와 C++ 양쪽에서 유효한 코드가 각 언어로 컴파일되었을 때 다른 동작을 발생시킬 수 있습니까? (0) | 2022.07.23 |