【Nuxt.js】Vuex 기초편②state를 복수 사용해 보자
전치
이번은 전회의 기초편에 이어,
state가 복수 있는 경우의 쓰는 방법입니다✍️
기초편으로 Vuex의 기본적인 해설은 하고 있습니다!
또한 기초편의 코드에 추가하기 때문에
그쪽을 확인하면서 해보세요 🌟
Vuex 기초편은 이쪽
h tps : //에서. 코 m / 아 · 응 / 응 497914c981c8 # 8l88
하고 싶은 일
기초편의 카운터를 2개로 늘립니다!
이것만! ! !
NG 패턴
우선은 NG 패턴으로부터.
우선은 state에 subCounter를 추가.
mutations 등에도 마찬가지로
subCounter에 대해 추가합니다 ✍️
하지만!
이것이라고 후술하는 subCounter에
모든 것이 정리되어 버립니다. . .
counter.jsexport const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state) {
state.counter++
},
setDecrease(state) {
state.counter--
},
setIncrease(state) {
state.subCounter++
},
setDecrease(state) {
state.subCounter--
},
}
export const getters = {
counter: state => {
return state.counter
},
subCounter: state => {
return state.subCounter
}
}
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease')">Increase</button>
<button @click="$store.commit('counter/setDecrease')">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease')">Increase</button>
<button @click="$store.commit('counter/setDecrease')">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
index.vue<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
OK 패턴
그래서
mutations를 하나로 통일합시다⭕️
두 번째 인수 index를 사용하여
· 0이면 counter
· 1의 경우 subCounter
변동시킵니다.
안녕하세요, 그 두 패턴으로 좋기 때문에
if 문의 else if까지 있으면 OK입니다 🎵😄
if 문if (条件式1) {
条件式1がtrueの時の処理
} else if (条件式2) {
条件式1がtrueの時の処理
} else {
上記以外の全ての時の処理
}
추가 인수를 작성하는 방법은 공식 참조입니다 ✍️
https://vuex.vuejs.org/en/guide/mutations.html# 추가 인수를 전달하고 커밋
🎈 변경 부분만 기재합니다🧸
counter.jsexport const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
Counter.vue
여기서 두 번째 인수에 0, 1을 넣습니다.
counter와 subCounter를 구별하고 있습니다 🌟
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
이것으로 완성입니다 🤗🎉
완성 코드
counter.jsexport const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
export const getters = {
counter(state) {
return state.counter
},
subCounter(state) {
return state.subCounter
}
}
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
index.vue<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
기사가 공개되었을 때 알 수 있듯이,
note · Twitter 팔로우 해주세요 😀
htps : // 라고 해서 r. 코 m/아→아 b
Reference
이 문제에 관하여(【Nuxt.js】Vuex 기초편②state를 복수 사용해 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/aLiz/items/709888d081a6430554b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기초편의 카운터를 2개로 늘립니다!
이것만! ! !
NG 패턴
우선은 NG 패턴으로부터.
우선은 state에 subCounter를 추가.
mutations 등에도 마찬가지로
subCounter에 대해 추가합니다 ✍️
하지만!
이것이라고 후술하는 subCounter에
모든 것이 정리되어 버립니다. . .
counter.jsexport const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state) {
state.counter++
},
setDecrease(state) {
state.counter--
},
setIncrease(state) {
state.subCounter++
},
setDecrease(state) {
state.subCounter--
},
}
export const getters = {
counter: state => {
return state.counter
},
subCounter: state => {
return state.subCounter
}
}
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease')">Increase</button>
<button @click="$store.commit('counter/setDecrease')">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease')">Increase</button>
<button @click="$store.commit('counter/setDecrease')">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
index.vue<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
OK 패턴
그래서
mutations를 하나로 통일합시다⭕️
두 번째 인수 index를 사용하여
· 0이면 counter
· 1의 경우 subCounter
변동시킵니다.
안녕하세요, 그 두 패턴으로 좋기 때문에
if 문의 else if까지 있으면 OK입니다 🎵😄
if 문if (条件式1) {
条件式1がtrueの時の処理
} else if (条件式2) {
条件式1がtrueの時の処理
} else {
上記以外の全ての時の処理
}
추가 인수를 작성하는 방법은 공식 참조입니다 ✍️
https://vuex.vuejs.org/en/guide/mutations.html# 추가 인수를 전달하고 커밋
🎈 변경 부분만 기재합니다🧸
counter.jsexport const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
Counter.vue
여기서 두 번째 인수에 0, 1을 넣습니다.
counter와 subCounter를 구별하고 있습니다 🌟
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
이것으로 완성입니다 🤗🎉
완성 코드
counter.jsexport const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
export const getters = {
counter(state) {
return state.counter
},
subCounter(state) {
return state.subCounter
}
}
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
index.vue<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
기사가 공개되었을 때 알 수 있듯이,
note · Twitter 팔로우 해주세요 😀
htps : // 라고 해서 r. 코 m/아→아 b
Reference
이 문제에 관하여(【Nuxt.js】Vuex 기초편②state를 복수 사용해 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/aLiz/items/709888d081a6430554b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
export const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state) {
state.counter++
},
setDecrease(state) {
state.counter--
},
setIncrease(state) {
state.subCounter++
},
setDecrease(state) {
state.subCounter--
},
}
export const getters = {
counter: state => {
return state.counter
},
subCounter: state => {
return state.subCounter
}
}
<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease')">Increase</button>
<button @click="$store.commit('counter/setDecrease')">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease')">Increase</button>
<button @click="$store.commit('counter/setDecrease')">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
그래서
mutations를 하나로 통일합시다⭕️
두 번째 인수 index를 사용하여
· 0이면 counter
· 1의 경우 subCounter
변동시킵니다.
안녕하세요, 그 두 패턴으로 좋기 때문에
if 문의 else if까지 있으면 OK입니다 🎵😄
if 문
if (条件式1) {
条件式1がtrueの時の処理
} else if (条件式2) {
条件式1がtrueの時の処理
} else {
上記以外の全ての時の処理
}
추가 인수를 작성하는 방법은 공식 참조입니다 ✍️
https://vuex.vuejs.org/en/guide/mutations.html# 추가 인수를 전달하고 커밋
🎈 변경 부분만 기재합니다🧸
counter.js
export const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
Counter.vue
여기서 두 번째 인수에 0, 1을 넣습니다.
counter와 subCounter를 구별하고 있습니다 🌟
Counter.vue
<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
이것으로 완성입니다 🤗🎉
완성 코드
counter.jsexport const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
export const getters = {
counter(state) {
return state.counter
},
subCounter(state) {
return state.subCounter
}
}
Counter.vue<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
index.vue<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
기사가 공개되었을 때 알 수 있듯이,
note · Twitter 팔로우 해주세요 😀
htps : // 라고 해서 r. 코 m/아→아 b
Reference
이 문제에 관하여(【Nuxt.js】Vuex 기초편②state를 복수 사용해 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/aLiz/items/709888d081a6430554b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
export const state = () => ({
counter: 0,
subCounter: 0,
})
export const mutations = {
setIncrease(state, index) {
if (index === 0) {
state.counter++
} else if (index === 1) {
state.subCounter++
}
},
setDecrease(state, index) {
if (index === 0) {
state.counter--
} else if (index === 1) {
state.subCounter--
}
},
}
export const getters = {
counter(state) {
return state.counter
},
subCounter(state) {
return state.subCounter
}
}
<template>
<div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 0)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 0)">Decrease</button>
{{ counter }}
</div>
<div class="container">
<button @click="$store.commit('counter/setIncrease', 1)">Increase</button>
<button @click="$store.commit('counter/setDecrease', 1)">Decrease</button>
{{ subCounter }}
</div>
</div>
</template>
<script>
export default {
computed: {
counter () {
return this.$store.getters['counter/counter']
},
subCounter () {
return this.$store.getters['counter/subCounter']
},
},
}
</script>
<template>
<div class="container">
<Counter />
</div>
</template>
<script>
import Counter from '~/components/Counter.vue';
export default {
components: {
Counter,
},
}
</script>
Reference
이 문제에 관하여(【Nuxt.js】Vuex 기초편②state를 복수 사용해 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aLiz/items/709888d081a6430554b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)