vuex官网: https://vuex.vuejs.org/zh/html
搭建Nuxt项目看这个博客: 带你从不懂到搭建第一个Nuxt项目vue
vuex中的数据源,咱们须要保存的数据就保存在这里,能够在页面经过 this.$store.state.变量名 来获取咱们定义的数据;
/**漫路h */ export const state = () => ({ count:1 })
随便一个页面,经过this.$store.state.变量名便可获取到数据vuex
Getter至关于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被从新计算,这里咱们能够经过定义vuex的Getter来获取,Getters 能够用于监听、state中的值的变化,返回计算后的结果
/*const getters = { //getters至关因而state的计算属性,若是你须要将变量的值进行计算,而后输出,写这里 include: (state) => (val) => { return state.count==1; }
数据咱们在页面是获取到了,可是若是咱们须要修改count值怎么办?若是须要修改store中的值惟一的方法就是提交mutation来修改
/**漫路h */ export const mutations = { updateCount(state, value) { state.count = value } }
//actions提交的是mutations,至关于就是改变变量的方法的重写,可是,actions是能够进行异步操做的
/*const actions = { async updateCount({state, commit}, val) { commit('updateCount', val); } };*/
文件中的代码都是同样的,只是使用的时候有一点不一样, 看下面代码演示就能够了缓存
/**漫路h */ export const state = () => ({ username:"游客" }) export const mutations = { updateUsername(state, value) { state.username = value } }
<template> <div> 用户: {{username}} <input v-if="username=='游客'" type="button" value="登录" @click="updateUsername('漫路')" /> <input v-if="username!='游客'" type="button" value="退出" @click="updateUsername('游客')" /> </div> </template> <script> import { mapState,mapMutations } from 'vuex' export default { computed: { username () { return this.$store.state.user.username } }, methods: { /**漫路h */ ...mapMutations({ updateUsername: 'user/updateUsername' }) }, } </script> <style> </style>
访问路径: localhost:3000/user异步