programing

data()에서 vuex 상태를 여기에 바인딩하시겠습니까?

firstcheck 2022. 7. 24. 22:56
반응형

data()에서 vuex 상태를 여기에 바인딩하시겠습니까?

vuex를 2.0으로 업그레이드하려고 하는데 데이터를 초기화하기 전에 mapstate/getters를 사용할 수 있는지 궁금합니다.

Vuex 1.0에서는 vuex 상태가 data()보다 먼저 매핑되므로 호출만 하면 됩니다.this그리고 나서 내가 접근하고 싶은 상태는

import { mapGetters } from 'vuex'

export default {
  vuex: {
    getters: {
      userSettings: ({ settings }) => settings.userSettings,
    }
  },
  data: function () {
    return {
      sendEmails: this.userSettings.sendEmails
    }
  }
}

하지만 Vuex 2.0에서는this.$store.state.settings.UserSettings.sendEmails

import { mapGetters, mapState } from 'vuex'

export default {
data: function () {
   return {
    sendEmails: this.$store.state.settings.UserSettings.sendEmails
   }
}
computed: {
  ...mapGetters({
    settings: "settings"
  })
}

그 상태를 data()보다 먼저 초기화하는 방법이 있습니까?데이터 초기화 시 상태를 이용하는 컴포넌트가 여러 개 있어 콜을 해야 합니다.this.$store.state파괴할 수 있다는 건 알지만 피할 수 있을까 해서요

저 같으면sendEmailsmounted

import { mapGetters, mapState } from 'vuex'

export default {
    data: function () {
       return {
        sendEmails: []
       }
    }

    computed: {
      ...mapGetters({
        settings: "settings"
      })
    },

    mounted: function() {
       if (this.settings.UserSettings){
          this.sendEmails = this.settings.UserSettings.sendEmails
       }
    }
}

언급URL : https://stackoverflow.com/questions/43375447/bind-vuex-state-to-this-in-data

반응형