美文网首页
双向绑定和 vuex 是否冲突 ?

双向绑定和 vuex 是否冲突 ?

作者: 简单tao的简单 | 来源:发表于2023-12-17 10:37 被阅读0次

在属于 Vuex 的 state 上使用 v-model,在用户输入时,v-model 会试图直接修改 obj.message,在严格模式中,不是在 mutation 函数中修改的state, 就会抛出一个错误。

const store = createStore({
  // ...
  strict: true
})
<input v-model="obj.message">
解决方法:
  • 方法1. 用“Vuex 的思维”去解决这个问题的方法是:给 <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)
  }
}

下面是mutation函数

mutations: {
  updateMessage (state, message) {
    state.obj.message = message
  }
}
  • 方法2. 双向绑定的计算属性
<input v-model="message">
computed: {
  message: {
    get () {
      return this.$store.state.obj.message
    },
    set (value) {
      this.$store.commit('updateMessage', value)
    }
  }
}
mutations: {
  updateMessage (state, message) {
    state.obj.message = message
  }
}

相关文章

  • vue

    1、vue的双向数据绑定实现原理 2、vue如何在组件之间进行传值 3、vuex和vue的双向数据绑定有什么冲突 ...

  • 通过Vuex实现Input双向绑定

    通过Vuex实现Input的双向绑定 安装Vuex 引入Vuex 新建store.js 页面中绑定

  • vue 进阶

    插件 严格模式 vuex+ 双向绑定

  • 前端面试题:VUE

    1. vue的双向数据绑定实现原理? 2. vue如何在组件之间进行传值? 3. vuex和vue的双向数据绑定...

  • Compute

    - 转换数据 - 双向绑定 Props或者Vuex - 日期合并拆分

  • 【前端100问】Q47:双向绑定和 vuex 是否冲突

    写在前面 此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我[https://github.co...

  • vue双向数据绑定vuex中的state

    vue双向数据绑定vuex中的state 在vue中, 不允许直接绑定vuex的值到组件中, 若是直接使用, 则会...

  • vue 面试题

    1.vuex的理解及优缺点 vuex可以保存数组、对象、或者嵌套结构,不用toString 双向绑定,使用comm...

  • (33)Vue购物车

    用v-model来双向绑定input控制checkbox是否选中 Vue中双向数据绑定是如何实现的 positio...

  • Vue之表单双向数据绑定和组件

    三、表单双向数据绑定和组件 目录:双向数据绑定、组件 1.双向数据绑定 1)什么是双向数据绑定Vue.js是一个M...

网友评论

      本文标题:双向绑定和 vuex 是否冲突 ?

      本文链接:https://www.haomeiwen.com/subject/wyxogdtx.html