iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 27
0

vuex 是用來集中處理資料的地方,假設我們要管理 user 資料,透過 getters 顯示資料,透過 commit 觸發 mutations 裡的 function 改變 user 資料

vuex

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
      user: {
          name: ''
      }
  },
  getters: {
      user(state) {
          return state.user
      }
  },
  mutations: {
      updateName(state, payload) {
          state.user.name = payload
      }
  }
});

html

<input :value="user.name" @input="updateName">

js

// ...
computed: {
    user(){
        return this.$store.getters.user
    }
},
methods: {
  updateName (e) {
    this.$store.commit('updateName', e.target.value)
  }
}

來自好想的 C 先生 - Chris 留言提出了更簡潔的寫法

<input :value="$store.getters.user.name" @input="$store.commit('updateName', $event.target.value)">

上一篇
|D26| 自定義元件的資料綁定與`$event`
下一篇
|D28| 用 vuex 實作資料操作
系列文
技術在走,Vue.js 要有30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言