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

Vuex 使用实例

文章目录

    • Vuex
      • 介绍
      • 使用步骤
        • 安装
        • 使用
          • 定义配置文件
            • 代码解释:
          • 导入到 App.vue使用
          • 使用vuex

Vuex

介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

简单来说就是,多个组件需要共享一个data,原本只能通过父子组件来进行,但是vuex可以实现共享data

使用步骤

安装

在这里插入图片描述

npm install vuex@next

查看我们的 pakege.json 可以发现安装是否成功
在这里插入图片描述
在这里插入图片描述
已经安装成功

使用
定义配置文件

在项目的 src 目录下创建一个 store 文件夹,并在其中创建一个 index.js 或 index.ts 文件来定义 Vuex store
在这里插入图片描述
加入配置代码

// src/store/index.js  
import { createStore } from 'vuex';  
  
export default createStore({  
  state: {  
    count: 0,  
    user: {  
      name: 'John Doe',  
      age: 30  
    }  
  },  
  mutations: {  
    increment(state) {  
      state.count++;  
    },  
    updateUserName(state, newName) {  
      state.user.name = newName;  
    }  
  },  
  actions: {  
    asyncIncrement({ commit }) {  
      setTimeout(() => {  
        commit('increment');  
      }, 1000);  
    },  
    updateUserNameAction({ commit }, newName) {  
      commit('updateUserName', newName);  
    }  
  },  
  getters: {  
    doubleCount(state) {  
      return state.count * 2;  
    },  
    userAge(state) {  
      return state.user.age;  
    }  
  }  
});
代码解释:

state(状态)
含义:state 是 Vuex 中的基本数据,用于存储应用程序的状态变量。它是响应式的,当 state 发生变化时,依赖这些状态的组件会自动更新。
作用:state 提供了应用程序中所有组件可以共享的数据源。通过将状态集中存储在 state 中,可以方便地管理应用的全局状态。

mutations(突变)
含义:mutations 是 Vuex 中唯一允许更新应用状态的方法。它们是同步函数,用于对 state 进行同步修改。
作用:mutations 提供了修改 state 的机制。每个 mutation 都有一个字符串类型的事件类型(type)和一个回调函数(handler),在回调函数中实际进行状态的改变。通过调用 commit 方法并传入 mutation 的类型来触发相应的 mutation。

actions(动作)
含义:actions 类似于 mutations,但用于处理异步操作。actions 可以包含任意异步代码,并在操作完成后通过调用 mutations 来更新状态。
作用:actions 提供了处理异步操作(如 API 请求)的能力。它们可以触发 mutations,但不能直接修改 state。通过调用 dispatch 方法并传入 action 的类型来触发相应的 action。

getters(获取器)
含义:getters 是 Vuex 中用于从 state 中派生出一些状态或计算属性的函数。它们类似于 Vue 组件中的计算属性,但可以在全局范围内使用。
作用:getters 提供了对 state 的计算或过滤功能,从而可以基于 state 派生出新的状态或数据。getters 可以接受额外的参数,并返回派生出的新状态或数据。在组件中,可以通过 this.$store.getters.getterName 或 mapGetters 辅助函数来访问 getters。

导入到 App.vue使用
import store from './store'
app.use(store); 
使用vuex

现在,可以在 Vue 组件中使用 Vuex 状态、提交 mutations 和调用 actions
实例代码:

<template>  
  <div>  
    <p>Count: {{ count }}</p>  
    <p>Double Count: {{ doubleCount }}</p>  
    <p>User Name: {{ userName }}</p>  
    <p>User Age: {{ userAge }}</p>  
    <button @click="incrementCount">Increment</button>  
    <button @click="asyncIncrementCount">Async Increment</button>  
    <button @click="updateUserName('Jane Doe')">Update User Name</button>  
  </div>  
</template>  
  
<script>  
import { computed } from 'vue';  
import { useStore } from 'vuex';  
  
export default {  
  setup() {  
    const store = useStore();  
  
    const count = computed(() => store.state.count);  
    const doubleCount = computed(() => store.getters.doubleCount);  
    const userName = computed(() => store.state.user.name);  
    const userAge = computed(() => store.getters.userAge);  
  
    const incrementCount = () => {  
      store.commit('increment');  
    };  
  
    const asyncIncrementCount = async () => {  
      await store.dispatch('asyncIncrement');  
    };  
  
    const updateUserName = (newName) => {  
      store.dispatch('updateUserNameAction', newName);  
    };  
  
    return {  
      count,  
      doubleCount,  
      userName,  
      userAge,  
      incrementCount,  
      asyncIncrementCount,  
      updateUserName  
    };  
  }  
};  
</script>

在这里插入图片描述
在这里插入图片描述
然后就能成功的实现vuex数据共享了


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

相关文章:

  • 多线程-进阶(1)
  • 胤娲科技:00后揭秘——AI大模型的可靠性迷局
  • Could not get JDBC Connection: wait millis 10000, active 500
  • 数字化AI新赋能,智享AI直播:开启一个全新的直播时代!
  • WPS的JS宏实现删除某级标题下的所有内容
  • 【大模型理论篇】精简循环序列模型(minGRU/minLSTM)性能堪比Transformer以及对循环神经网络的回顾
  • tp6的系统是如何上架的
  • Facebook直播分析与问题解决策略
  • 什么是「杀猪盘」?怎样能有效防范杀猪盘诈骗?
  • 带你深入浅出设计模式:十一、组合实体模式:软件世界的乐高积木
  • 日语学习零基础生活日语口语柯桥外语学校|股票用日语怎么说?
  • threejs-基础材质设置
  • 软件项目开发流程与团队分工整体认知——基于《信息系统项目管理师教程》(需求分析、系统设计、开发、测试、部署与运维、开发工具与管理软件)
  • 【C++篇】虚境探微:多态的流动诗篇,解锁动态的艺术密码
  • leetcode---素数,最小质因子,最大公约数
  • 回归分析在数据挖掘中的应用简析
  • x86 架构下一些常用的汇编指令英文全称与功能简述
  • 商标恶意维权形式及应对策略
  • nn.Identity()
  • 噪声分布 双峰,模拟函数 或者模拟方法 python人工智能 深度神经网络