Vuex的表单处理
2020-04-24 08:44
1271 查看
当在严格模式中使用 Vuex 时,在属于 Vuex 的 state 上使用 v-model 会有很多问题:
v-model=“obj.msg”
假设这里的 obj 是在计算属性中返回的一个属于 Vuex store 的对象,在用户输入时,v-model 会试图直接修改 obj.msg。在严格模式中,由于这个修改不是在 mutation 函数中执行的, 这里会抛出一个错误。
解决方案一:监听input的input/change事件
给 input 中绑定 value,然后侦听 input 或者 change 事件,在事件回调中调用一个方法
<input :value="message" @input="updateMessage">
// ... computed: { ...mapState({ message: state => state.obj.message }) }, methods: { updateMessage (e) { this.$store.commit('updateMessage', e.target.value) } }
// ... mutations: { updateMessage (state, message) { state.obj.message = message } }
虽然不是最优方案,但至少解决问题了。
双向绑定的计算属性
还有一种方法是使用带有 setter 的双向绑定计算属性
<input v-model="message">
// ... computed: { message: { get () { return this.$store.state.obj.message }, set (value) { this.$store.commit('updateMessage', value) } } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Vue.JS入门教程之处理表单
- Vue 处理表单input单行文本框的实例代码
- Vue------第四天(事件处理:事件监听、修饰符等;表单输入绑定:基础用法、值绑定)
- Vue.JS入门教程之处理表单
- DWR util.js 整理(DWR 处理各种form表单Select/option,table等,List,Bean
- 驰骋工作流引擎ccflow-ccbpm工作流引擎sdk表单装载逻辑处理注意事项
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(一)
- vue对storejs获取的数据进行处理时遇到的问题
- 处理表单输入数字自动添加千分符
- 照片采集信息 Excel表单处理 VBA
- Vue 的(v-model)表单控件绑定
- 基于表单数据的封装,泛型,反射以及使用BeanUtils进行处理
- Vue表单验证插件的制作过程
- 17. PHP 表单处理
- JSP 表单处理
- dojo表单提交的处理:表单转为json提交,json值绑定到vo类
- vue -- 表单验证
- Vue 组件实现表单的双向绑定
- 【Vue表单】v-model的修饰符
- 不同浏览器对回车提交表单的处理办法