zoukankan      html  css  js  c++  java
  • uni-app(四)小程序里的vuex

    项目一旦开始庞大起来,就会用到vuex了,我们都知道,它是状态存储管理器,相对于本地存储,更加轻量和安全

    在小程序里,其实和平时的vue项目里 vuex 使用方法是一样的,所以我们如法炮制

    • main.js 同级创建 store 文件夹,再在文件夹里,创建 index.js、getters.js、data.js
    • 在 main.js 中引入 vuex
      import store from '@/store'
      
      const app = new Vue({
          ...
          store
      })
      app.$mount()
    • index.js,注册 vuex,并引入相关文件
      import Vue from 'vue'
      import Vuex from 'vuex'
      import data from './data'
      import getters from './getters'
      
      Vue.use(Vuex)
      
      const store = new Vuex.Store({
        modules: {
          data
        },
        getters
      })
      
      export default store
    • data.js,操作数据的核心文件,包含了 state、mutations、actions 三大属性
      const data = {
        state: {
          id: 0,
          name: '哈皮'
        },
        mutations: {
          set_name: (state, res) => {
            state.id = res.id
            state.name = res.name
          }
        },
        actions: {
        getList: async ({ commit }, params = {}) => {
              let res = await uni.service.getList(params)
              commit('set_name', res)
              return res
            }
        }
      }
      
      export default data
    • getters.js,输出处理完成的数据
      const getters = {
        id: state => state.data.id,
        name: state => state.data.name
      }
      export default getters
    • 存储、修改、获取
      // 存储、修改,有两种方法
      // 第一种是 actions,执行commit,再mutations,
      let obj = { ... }
      this.$store.dispatch('getList', obj)
      // 第二种是直接提交 commit,执行 mutations
      this.$store.commit('set_name', obj)
      
      // 获取
      let id= this.$store.getters.id
      let name = this.$store.getters.name
      console.log(id,name)
  • 相关阅读:
    Android中onBackPressed()的使用
    Python初次学习
    svn Mac下面无法更新png
    UIView的layoutSubviews和drawRect
    "_deflate", referenced from: -[NSData(NSDataAdditions) gzipDeflate] in NSDataAdditions.o
    Error12
    pods安装
    xib为view添加边框
    这些机型将被淘汰
    Development cannot be enabled while your device is locked.
  • 原文地址:https://www.cnblogs.com/wx3091/p/14519773.html
Copyright © 2011-2022 走看看