vue基础——java程序员版(vuex)

​ vuex可以定义共享数据。

1、主要结构

src/store/index.js 是使用vuex的核心js文件。

  • 定义数据:state

  • 修改数据(同步):mutations

  • 修改数据(异步):action=调用=>mutations

    下面定义了一个公共数据msg ,mutations方法setName,action方法sendAjax

js 复制代码
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // 定义共享数据,{{$store.state.msg}}展示,所以得组件都可以使用
  state: {
    msg:'这是vuex的公共消息',
  },
  getters: {
  },
  // 只能由mutations来实现修改,必须是同步操作
  mutations: {
    // state代表的是上面的state必须同名,但是后面的参数是形参名字随意,调用:this.$store.commit('setName','新的信息!');
    setName(state,newMsg){
      state.msg=newMsg;
    }
  },
  // action可以调用mutations,在action可以执行异步操作(Ajax),调用:this.$store.dispatch('sendAjax');
  actions: {
    // 通过传入context来调用mutations方法
    sendAjax(context){
      /**
       * 执行Ajax
       */
      context.commit('setName','异步修改的信息');
    },

  },
  modules: {
  }
})

2、操作共享数据

​ {{$store.state.msg}}展示数据msg,update1()调用mutations的setName方法修改msg,update2()调用action的sendAjax方法修改msg。

vue 复制代码
<template>
<div>
  <h1>
    {{$store.state.msg}}
  </h1>
  <input type="button" value="直接修改共享数据" @click="update1()"/>
  <input type="button" value="异步修改共享数据" @click="update2()"/>
</div>
</template>
<script>
    export default {
      methods:{
        update1(){
          // 第一个参数是mutations定义的函数名,第二个是参数
          this.$store.commit('setName','新的信息!');
        },
        update2(){
          // 调用action方法,指定调用的函数名
          this.$store.dispatch('sendAjax');
        }
      }
    }
</script>
相关推荐
百锦再22 分钟前
Java多线程编程全面解析:从原理到实战
java·开发语言·python·spring·kafka·tomcat·maven
Cosmoshhhyyy26 分钟前
《Effective Java》解读第38条:用接口模拟可扩展的枚举
java·开发语言
wangbing112533 分钟前
平台介绍-主数据系统-同步消息设计
java
程序员林北北41 分钟前
【前端进阶之旅】节流与防抖:前端性能优化的“安全带”与“稳定器”
前端·javascript·vue.js·react.js·typescript
小冷coding1 小时前
【Java】最新Java高并发高可用平台技术选型指南(思路+全栈路线)
java·开发语言
寻星探路1 小时前
【前端基础】HTML + CSS + JavaScript 快速入门(三):JS 与 jQuery 实战
java·前端·javascript·css·c++·ai·html
cyforkk2 小时前
Tomcat 类加载机制解析:为何依赖包必须放在 WEB-INF/lib 目录下
java
JaJian.2 小时前
Java后端服务假死问题排查与解决
java·开发语言
救赎小恶魔2 小时前
C++算法(5)
java·c++·算法
未来之窗软件服务2 小时前
未来之窗昭和仙君(六十九)前端收银台行为异常检测—东方仙盟练气
前端·仙盟创梦ide·东方仙盟·昭和仙君