diff --git a/main.js b/main.js index afc6b0895d6b690f6d5157a993b83837f519503b..ac6e111e185d5c0c66f86880bdee540bcf1907c1 100644 --- a/main.js +++ b/main.js @@ -3,8 +3,13 @@ import App from './App' // #ifndef VUE3 import Vue from 'vue' Vue.config.productionTip = false + +import store from './store/index'; +Vue.prototype.$store = store; + App.mpType = 'app' const app = new Vue({ + store, ...App }) app.$mount() diff --git a/pages/index/index.vue b/pages/index/index.vue index a7086309c3415b16f739ff11b84a4f8632c0aba1..bffaad94c0aaac788c152dd6f02f83314e4936f1 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,9 +1,13 @@ @@ -11,52 +15,27 @@ export default { data() { return { - title: 'Hello' + } }, onShow() { }, methods: { - choose(){ - uni.chooseFile({ - count: 10, - type: 'image', - success (res) { - // tempFilePath可以作为img标签的src属性显示图片 - const tempFilePaths = res.tempFiles - console.log(tempFilePaths); - } - }) + clickGetUser(){ + console.log(this.$store.getters.getUser); + }, + clickUpdateUser(){ + let obj = { + name:'张三', + sex:'女' + }; + this.$store.commit('updateUser',obj); } } } diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0f116e29a199624e844be3cd394405f9b7ece96f --- /dev/null +++ b/store/index.js @@ -0,0 +1,44 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; + +//vue的插件机制 +Vue.use(Vuex); + +//Vuex.Store 构造器选项 +const store = new Vuex.Store({ + state: { //存放状态 + user:uni.getStorageSync('user')||{}, + token:uni.getStorageSync('token')||'' + }, + mutations:{ + M_updateUser(state,payload){ + let obj = state.user; + state.user = {...obj,...payload}; + uni.setStorageSync('user',state.user); + }, + M_updateToken(state,payload){ + state.token = payload; + uni.setStorageSync('token',state.token); + } + }, + actions:{ + A_updateUser(context,payload){ + context.commit('M_updateUser',payload); + }, + A_updateToken(context,payload){ + context.commit('M_updateToken',payload); + } + }, + getters:{ + getUser(state){ + return state.user; + }, + getToken(state){ + return state.token; + } + }, + modules:{ + + } +}); +export default store; diff --git a/utils/xzCopy.js b/utils/xzCopy.js index 107d01aae70a8506138542877ec87148decdcae0..b9d52b75221a79c9824e490ae1520aa3f9448efe 100644 --- a/utils/xzCopy.js +++ b/utils/xzCopy.js @@ -16,10 +16,10 @@ export default { deepClone(obj) { //判断拷贝的obj是对象还是数组 let objClone = Array.isArray(obj) ? [] : {}; - if (obj && typeof obj === "object") { //obj不能为空,并且是对象或者是数组 因为null也是object + if (obj && typeof obj === 'object') { //obj不能为空,并且是对象或者是数组 因为null也是object for (key in obj) { if (obj.hasOwnProperty(key)) { - if (obj[key] && typeof obj[key] === "object") { //obj里面属性值不为空并且还是对象,进行深度拷贝 + if (obj[key] && typeof obj[key] === 'object') { //obj里面属性值不为空并且还是对象,进行深度拷贝 objClone[key] = deepClone(obj[key]); //递归进行深度的拷贝 } else { objClone[key] = obj[key]; //直接拷贝