当前位置: 首页 > article >正文

vuex使用modules模块化

1、main.js引入

//引入vuex
import store from './store'
new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>',
  data:function(){
      return{
          wbWinList: []   // 定义的变量,全局参数
      }
  },
})

在这里插入图片描述

2、index.js

import Vue from 'vue';
import Vuex from 'vuex';
import user from './modules/user'

Vue.use(Vuex);

const store = new Vuex.Store({
    state: {
        // 定义要传递的数据
        datas: [],
        id:1
    },
    getters: {
      doneTodos (state) {
        state.datas.push({"dade":666})
        return state.datas.length+8
      }
    },
    // 定义修改数据的 mutation
    mutations: {
        setData(state, newDatas) {
          state.id = newDatas;
        }
    },
    // 定义分发数据的 action,用于异步调用mutations
    actions: {
        updateDatas({ commit }, datas) {
          commit('setData', datas);
        }
    },
    // 模块化
    modules:{
      user
    }
});

// 全局使用
// console.log(this.$store.state)
// console.log(this.$store.state.user.id)

export default store;


2、user.js

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

const user = new Vuex.Store({
    state: {
        // 定义要传递的数据
        id:2
    },
    mutations: {
        // 定义修改数据的 mutation
        SET_DATAS(state, newDatas) {
          state.datas = newDatas;
        }
    },
    actions: {
        // 定义分发数据的 action
        updateDatas({ commit }, datas) {
          commit('SET_DATAS', datas);
        }
    }
});

export default user;


3、使用


<template>
  <div @click="dadepp">
    {{dades}}
  </div>
</template>

<script>
  export default{
    data(){
      return {
        dades:6666
      }
    },
    methods:{
      dadepp(){
        // 调用getters
        console.log(this.$store.getters.doneTodos)
        console.log(this.$store.state)
        console.log(this.$store.state.user.id)
        // 调用mutations
        this.$store.commit("setData",10)
        console.log(this.$store.state)
        //调用actions
        this.$store.dispatch("updateDatas",20)
        console.log(this.$store.state)
      }
    }
  }
</script>

<style scoped>
  .dade{
    -webkit-box-shadow: 0 2px 0px 0 rgba(0,0,0,.1);
     box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
  }
  .draggable-div {
    position: absolute;
  }
</style>



http://www.kler.cn/news/368029.html

相关文章:

  • hcia复习篇
  • HTML+CSS实现超酷超炫的3D立方体相册
  • nginx配置本地缓存用于提高响应效率
  • qt EventFilter用途详解
  • 基于Spring Boot的装饰工程管理系统源码(springboot)
  • 【go】仅设想,能不能通过pure go编写页面。
  • 【HarmonyOS】应用实现APP国际化多语言切换
  • 用Spring Boot实现的在线厨艺学习平台
  • 【K8S系列】Kubernetes 中 Service IP 地址和端口不匹配问题及解决方案【已解决】
  • 01-信息安全真题
  • 计算机网络基本命令
  • 多线程—— JUC 的常见类
  • 微信小程序开发真机调试连接后端
  • 基于SSM+小程序民宿短租管理系统(民宿1)
  • 修改滚动条样式
  • C++笔记---右值引用
  • 高效集成:聚水潭采购入库数据导入MySQL案例
  • 如何在 Ubuntu 16.04 上使用 mod_rewrite 重写 Apache 的 URL
  • C++——string的模拟实现(下)
  • Rust中常用的命令工具
  • 《西安科技大学学报》
  • 火语言RPA流程组件介绍--停止监听网络请求
  • Python中的局部路径规划算法——动态窗口法(DWA)
  • 分类预测 | SSA-LightGBM基于麻雀算法优化轻量级梯度提升机算法数据分类预测Matlab程序
  • 维乐Senso Edge坐垫,自然并不远,向往就前往
  • iTerm2 保持SSH远程连接