Vuex에서 여러 개의 하위 component 값을 공유하는 카운터 예시 (Vuex child component share store data example#Vue#Nuxt)

4691 단어 Vue.jsnuxt

NOTE

  • 초학, 학습 중
  • dispatch 같은 잘 모르는 수준
  • Nuxt로 프로젝트를 제작하는 환경
  • pages/state-counters.vue

    <template>
      <div>
        <div>
          <stateCounter/>
          <stateCounter/>
          <stateCounter/>
        </div>
      </div>
    </template>
    
    <script>
    
    import StateCounter from '~/components/stateCounter.vue'
    
    export default {
      components: {
        StateCounter
      }
    }
    </script>
    
    

    components/stateCounter.vue

    
    <template>
      <div>
        <div>
          <h1> {{ count }} </h1>
          <input type="button" @click="incrementCounter" value="Increment!">
        </div>
      </div>
    </template>
    
    <script>
    
    export default {
      computed: {
        count () {
          return this.$store.state.increments.count
        }
      },
      methods: {
        incrementCounter (e) {
          this.$store.commit('increments/increment')
        }
      }
    }
    </script>
    
    <style>
    body {
      text-align: center;
    }
    </style>
    
    

    store/increments.js

    export const state = () => ({
      count: 1
    })
    
    export const mutations = {
      increment (state) {
        state.count++
      },
    }
    
    

    View


    어떤 component 단추를 누르든지 모든 계수기의 값이 증가합니다



    Original by Github issue

    좋은 웹페이지 즐겨찾기