ヘルパーとは?
12643 ワード
mapState, mapGetters, mapMutations, mapActions
mapState
ヘルプ
//App.vue
<!-- <p>{{ this.$store.state.num }}</p> -->
<p>{{ this.num }} </p>
import { mapState } from 'vuex'
computed(){
...mapState(['num'])
/**
num() {
return this.$store.state.num;
}
*/
// store.js
state: {
num: 10
}
mapGetters
ヘルプ
//App.vue
<p>{{ this.reverseMessage }}</p>
// <p>{{ this.$store.getters.reverseMessage }}</p>
import { mapGetters } from 'vuex'
computed() {
...mapGetters(['reverseMessage'])
}
//store.js
getters: {
reverseMessage(state) {
return state.msg.split('').reverse().join('');
}
}
mapMutations
ヘルプ
//App.vue
<button @click="clickBtn">popup message</button>
import { mapMutations } from 'vuex'
methods: {
...mapMutations(['clickBtn']),
authLogin() {},
displayTable() {}
}
//store.js
mutations: {
clickBtn(state) {
alert(state.msg);
}
}
mapActions
ヘルプ
//App.vue
<button @click="delayClickBtn">delay popup message</button>
import { mapActions } from 'vuex'
methods:{
...mapActions(['delayClickBtn']),
}
//store.js
actions:{
delayClickBtn(context) {
setTimeout(() => context.commit('clickBtn'),2000);
}
}
Helperの使い方
//App.vue
// import { mapState, mapGetters, mapMutations, mapActions } from 'vuex' 와 동일
import { mapState } from 'vuex'
import { mapGetters } from 'vuex'
import { mapMutations } from 'vuex'
import { mapActions } from 'vuex'
export default {
computed() {
...mapState(['num']),
...mapGetters(['countedNum'])
},
methods: {
...mapMutations(['clickBtn']),
...mapActions(['asyncClickBtn'])
}
// ... = Object Spread Operator
出典:Arnarn)Vue。js中級講座-張基孝
Reference
この問題について(ヘルパーとは?), 我々は、より多くの情報をここで見つけました https://velog.io/@pji3504/Helper란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol