Vuex
解释
vuex 实现数据的全局共享,响应式更新
state 存放状态
$store.state.xxx访问
mutations 改变状态的唯一方法
SET_SCORE(state,data){}
$store.commit("xxx",data)
actions 异步操作数据的方式
changeScore(context,data){
//在actions中访问mutations
context.commit("SET_SCORE",data)}
$store.dispatch("xxx",data)
getters 从现有的状态计算出新的数据
level(state){
return state.user.score/100
}
$store.getters.XxX
module 子模块
把登录功能放在store/moudules/user.js actions中
loginView.vue页面执行登录
实现store/modules/user.js 实现注销
实现 登录成功提示,登录失败提示
为什么要把登录转换到vuex中
1. 登录后成功的数可以全局共享
2. 为了重复利用
登录功能可能不止在登录页面
1. 首页点击弹框登录
2.购物车 跳转前,弹框登录
3. 登录位置会有很多
如果写在Vuex只需要在登录地方
$store.dispatch("login",data) 方法就可以
为什么要写api/login.js (定义api呢)
重复利用,登录的api也会调用多次
方便集中管理
所有的请求地址与请求方式 api文件中
改请求方式与参数可以直接修改 api内容就可以,不用具体进入到某个组件