罗庄区建设局网站,app网站建设介绍,重庆网站建设公司是什么意思,长沙装修公司口碑最好的是哪家八、UniAPP Vuex 状态管理
概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 应用场景 Vue多个组件之间需要共享数据或状态。 关键规则
State#xff1a…八、UniAPP Vuex 状态管理
概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态并以相应的规则保证状态以一种可预测的方式发生变化。 应用场景 Vue多个组件之间需要共享数据或状态。 关键规则
State存储状态数据Getter从状态数据派生数据相当于 State 的计算属性Mutation存储用于同步更改状态数据的方法默认传入的参数为 stateAction存储用于异步更改状态数据但不是直接更改而是通过触发 Mutation 方法实现默认参数为contextModuleVuex 模块化
交互关系 使用方式
import {mapState,mapActions
} from vuex
export default {computed: {...mapState([loginState, userInfo])},methods: {...mapActions([userLoginAction, userLogoutAction]),}
}体验案例模拟用户登陆逻辑实现 注意配合使用 Storage 来实现刷新页面后状态持续保持的业务需求 1新建store目录新建index.js文件
import Vue from vue
import Vuex from vuex
Vue.use(Vuex)const store new Vuex.Store({state:{userName: uni.getStorageSync(userName) ? uni.getStorageSync(userName) : 未登录用户},mutations:{MLOGIN(state, userName){uni.setStorageSync(userName, userName)state.userName userName},MLOGOUT(state){uni.clearStorageSync()state.userName 退出状态用户}},actions:{login(context, userName){context.commit(MLOGIN, userName)},logout(context){context.commit(MLOGOUT)}}
})export default store2在main.js中引入store
import Vue from vue
import App from ./AppVue.config.productionTip falseApp.mpType app// 调用 store vuex 状态管理
import store from /store/index.js// if (process.env.NODE_ENV development) {
// console.log(开发环境)
// } else {
// console.log(生产环境)
// }const app new Vue({...App,store
})
app.$mount()
3在vue页面使用
templateviewtext通讯录/textview{{userName}}/viewviewbutton typedefault clicklogin(蜡笔小新)登陆/buttonbutton typedefault clicklogout退出/button/view/view
/templatescriptimport {mapState,mapActions} from vuex export default {data() {return {}},onLoad(){},computed:{...mapState([userName])},methods: {...mapActions([login, logout])}}
/scriptstyle/style