Vuex的基本结构
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
},
mutations: {
},
getters: {
},
actions: {
},
modules: {
}
})
Vuex的基本使用
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
num: 0
},
mutations: {
add(state) {
state.num ++
},
sub(state) {
state.num --
}
},
getters: {
square(state) {
return state.num * state.num
}
}
})
<template>
<div id="app">
<h2>{{$store.state.num}}h2>
<h3>平方:{{$store.getters.square}}h3>
<button @click="sub">-button>
<button @click="add">+button>
div>
template>
<script>
export default {
name: 'app',
methods: {
add(n) {
this.$store.commit('add')
},
sub() {
this.$store.commit('sub')
}
},
}
script>
<template>
<div id="app">
<h2>{{$store.state.num}}h2>
<button @click="sub(2)">-2button>
<button @click="add(5)">+5button>
div>
template>
<script>
export default {
name: 'app',
methods: {
add(x) {
this.$store.commit({
type: 'add',
x,
})
},
sub(x) {
this.$store.commit('sub', x)
}
},
}
script>
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
num: 0
},
mutations: {
add(state, n) {
state.num += n.x
},
sub(state, n) {
state.num -= n
}
}
})
- vuex的getter方法也可返回一个函数和传递参数
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
students: [
{id: 101, name: '张三'},
{id: 102, name: '李四'},
{id: 103, name: '王五'},
{id: 104, name: '赵六'},
]
},
getters: {
getid(state) {
return function(id) {
return state.students.filter(s => s.id == id)
}
}
}
})
<template>
<div id="app">
<h2>获取学号是102的学生信息:{{$store.getters.getid(102)}}h2>
div>
template>