반응형
vuex를 사용하여 단방향 바인딩을 구성합니다.
애플리케이션에서 vuex와 2방향 바인딩을 사용합니다.
messageContent: {
get () {
return store.getters.messageContent
},
set (value) {
store.commit('updateContent', value)
}
},
<b-form-textarea id="content" v-model="messageContent" :rows="3"></b-form-textarea>
<b-button size="sm" variant="primary" value="Cancel" aria-label="Cancel" @click.prevent='onCancel'>
<i class="fa fa-times" aria-hidden="true"></i> Cancel
</b-button>
프로프의 변형이 이미 발생했기 때문에 편집 취소 버튼을 클릭하면:
methods: {
onCancel () {
this.isEdit = !this.isEdit
}
}
어떻게 롤백합니까?
한 가지 방법이 해결책이라고 생각했지만 vuex를 사용하여 구현하는 방법을 잘 모르겠습니다.
이 예와 같은 것이 필요하다고 생각합니다. 오래된 내용이 무엇인지 - 오래된 내용이 무엇인지 - 새로운 내용이 무엇인지 - 새로운 내용이 무엇인지 - 명확하게 구분해야 합니다.이것은 단순하지만 효과적인 예입니다.
var store = new Vuex.Store({
state: {
savedContent: 'Previous content'
},
mutations: {
saveContent (state, value) {
state.savedContent = value
}
}
})
new Vue ({
el: '#app',
store,
data: {
newContent: store.state.savedContent
},
methods: {
save () {
this.$store.commit('saveContent', this.newContent)
},
cancel () {
this.newContent = this.$store.state.savedContent
}
}
})
<div id="app">
<textarea v-model="newContent"></textarea><br>
<button @click="save">save</button>
<button @click="cancel">cancel</button>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vuex"></script>
언급URL : https://stackoverflow.com/questions/47414305/form-one-way-binding-with-vuex
반응형
'programing' 카테고리의 다른 글
Node.js에서 Base64 인코딩을 수행하려면 어떻게 해야 합니까? (0) | 2023.06.30 |
---|---|
마지막 Git add는 어떻게 취소할 수 있습니까? (0) | 2023.06.30 |
T-SQL의 주 번호에서 날짜 가져오기 (0) | 2023.06.30 |
Bash 스크립트: #!/bin/bash는 무엇을 의미합니까? (0) | 2023.06.30 |
junit5와 함께 SpringRunner를 사용하기 위한 특별한 구성이 있습니까? (0) | 2023.06.30 |