Vuex
介绍
Vuex 同样实现了自动注册,开发只需关注 ./store/modules/ 文件夹里的文件即可,请根据模块区分文件。
新建模板:
js
// example.js
const state = {}
const getters = {}
const actions = {}
const mutations = {}
export default {
namespaced: true,
state,
actions,
getters,
mutations
}// example.js
const state = {}
const getters = {}
const actions = {}
const mutations = {}
export default {
namespaced: true,
state,
actions,
getters,
mutations
}文件默认开启命名空间,文件名会默认注册为模块名,使用方法:
js
this.$store.state.example.xxx;
this.$store.getters['example/xxx'];
this.$store.dispatch('example/xxx');
this.$store.commit('example/xxx');this.$store.state.example.xxx;
this.$store.getters['example/xxx'];
this.$store.dispatch('example/xxx');
this.$store.commit('example/xxx');settings
负责存放配置相关数据,不建议在该文件进行二次开发。
keepAlive
负责记录页面缓存的组件 name 名,不建议在该文件进行二次开发。
menu
负责生成导航菜单的路由数据,不建议在该文件进行二次开发。
tabbar
负责记录标签栏状态,不建议在该文件进行二次开发。
当配置开启标签栏功能时,页面组件的 name 会在打开页面时自动加入缓存列表,如果页面无需缓存,则不设置 name 即可,注意,是页面组件的 name ,不是路由的 name 。
固定的标签会将数据存放到 localStorage 里。
user
负责实现用户的登录、登出,以及用户信息处理。
这个文件是需要二次开发的,其中 getters.isLogin、dispatch('login')、commit('setUserData')、commit('removeUserData') 为必须修改的地方,主要负责校验是否登录、登录操作、登录成功记录用户信息、登出清除用户信息。
按框架的设计,用户登录时不获取权限数据,登录成功后通过 dispatch('getPermissions') 获取用户权限数据,如果你的系统是在登录时就能拿到用户权限数据,那在这个方法里可以只保留一句 resolve(permissions) ,只需将权限数据 resolve 出去即可。
Fantastic-admin 文档 (v1)