mapStateimport { mapState } from 'vuex' export default { // ... computed:{ ...mapState({ // Arrow functions can make the code more concise count: state => state.count, // Passing the string parameter 'count' is equivalent to `state => state.count` countAlias: 'count', // In order to be able to use `this` to get the local state, you must use the regular function countPlusLocalState (state) { return state.count + this.localCount } }) } } When the defined attribute name is the same as the name in the state, you can pass in an array //Define state const state = { count:1, } //Use the auxiliary function computed in the component:{ ...mapState(['count']) } mapGetterscomputed:{ ...mapGetters({ // Map `this.doneCount` to `this.$store.getters.doneTodosCount` doneCount: 'doneTodosCount' }) } When the property name is the same as defined in getters, you can pass in an array computed:{ computed: { // Use the object spread operator to mix getters into the computed object...mapGetters([ 'doneTodosCount', 'anotherGetter', // ... ]) } } Summarize:
mapMutationsmethods:{ ...mapMutations({ add: 'increment' // Map `this.add()` to `this.$store.commit('increment')` }) } When the property name is the same as defined in mapMutatios, you can pass in an array methods:{ ...mapMutations([ 'increment', // Map `this.increment()` to `this.$store.commit('increment')` // `mapMutations` also supports payloads: 'incrementBy' // Maps `this.incrementBy(amount)` to `this.$store.commit('incrementBy', amount)` ]), } mapActiosmathods:{ ...mapActions({ add: 'increment' // Map `this.add()` to `this.$store.dispatch('increment')` }) } When the attribute name is the same as defined in mapActios, an array can be passed in methods:{ ...mapActions([ 'increment', // Map `this.increment()` to `this.$store.dispatch('increment')` // `mapActions` also supports payloads: 'incrementBy' // Maps `this.incrementBy(amount)` to `this.$store.dispatch('incrementBy', amount)` ]), } Summarize
Multiple modulesWhen not using auxiliary functions, this.$store.commit('app/addCount') Use the helper function, the first parameter of the helper function is the path to the given namespace computed: { ...mapState('some/nested/module', { a: state => state.a, b: state => state.b }) }, methods: { ...mapActions('some/nested/module', [ 'foo', // -> this.foo() 'bar' // -> this.bar() ]) } Or use the createNamespacedHelpers function to create a namespace-based helper function import { createNamespacedHelpers } from 'vuex' const { mapState, mapActions } = createNamespacedHelpers('some/nested/module') // given a path // use the same method as before export default { computed: { // Look in `some/nested/module`...mapState({ a: state => state.a, b: state => state.b }) }, methods: { // Look in `some/nested/module`...mapActions([ 'foo', 'bar' ]) } } The above is the detailed content on how to use the auxiliary functions of vuex. For more information about the auxiliary functions of vuex, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
<<: Detailed explanation of MySQL combined index and leftmost matching principle
>>: Learn to deploy microservices with docker in ten minutes
Table of contents Preface 1. Project Architecture...
Table of contents 1. Core 1. Get the Dom node 2. ...
I have always wondered why the MySQL database tim...
Table of contents 1. Front-end leading process: 2...
Preface Due to the weak typing of JS, loose writi...
I logged into the backend to check the solution t...
What is a generator? A generator is some code tha...
1. Node server setup + database connection The op...
Table of contents Preface Installation and Config...
Application example website http://www.uhuigou.net...
This article example shares the specific code of ...
Table of contents 1. User created script 2. Word ...
I am using centos 7 64bit system here. I have tri...
Server matching logic When Nginx decides which se...
1. Installation The biggest feature of Terminator...