vue3.x专题十 ---- vuex使用方法总结(全局状态)

1、创建vuex仓库  store/index.js

import { createStore } from 'vuex'
// 创建vuex仓库并导出
export default createStore({
  state: {
    // 数据
    username: '张三'
  },
  mutations: {
    // 改数据函数
    updateName (state) {
      state.username = “新名字”
    }
  },
  actions: {
    // 异步操作:请求数据函数
    updateName (context) {
      // 发请求
      setTimeout(() => {
        context.commit('updateName', '更改名字')
      }, 1000)
    }
  },
  modules: {
  },
  getters: {
    // vuex的计算属性
    newName (state) {
      return 'hello  ' + state.username
    }
  }
})

2、在组件中使用

<template>
  <div>
    使用根模块state数据:{{ $store.state.username }}
  </div>
  <div>
    使用根模块getters数据:{{ $store.getters.newName }}
  </div>
  <br>
  <div>
    <button @click="mutationsFn">mutationsFn改名字</button>
  </div>
  <div>
    <button @click="$store.commit('updateName', '李四')">mutationsFn改名字</button>
  </div>
  <br/>
  <br/>
  <div>
    <button @click="actionsFn">actionsFn改名字</button>
  </div>
  <div>
    <button @click="$store.dispatch('updateName')">actionsFn改名字</button>
  </div>
</template>

<script>
import { useStore } from 'vuex'
export default {
  name: 'App',
  setup (props) {
    const store = useStore()
    const mutationsFn = () => {
      // 执行根目录里面的mutations方法修改数据
      store.commit('updateName', '李四')
    }
    const actionsFn = () => {
      // 执行根目录里面的mutations方法修改数据
      store.dispatch('updateName')
    }
    return {
      mutationsFn,
      actionsFn
    }
  }
}
</script>
<style lang="less">

</style>

3、在单独的 js文件里面, 使用vuex

import { useStore } from 'vuex'
const store = useStore()
const mutationsFn = () => {
    // 执行根目录里面的mutations方法修改数据
    store.commit('updateName', '李四')
}
const actionsFn = () => {
    // 执行根目录里面的mutations方法修改数据
    store.dispatch('updateName')
}

这里做一下总结,下一节我们总结一下vuex分模块的状态,觉得有用的朋友,可以点赞评论收藏一哈。。。

相关推荐

  1. vue3.x专题 ---- vuex使用方法总结全局状态

    2024-04-07 09:48:03       16 阅读
  2. Vue3使用Pinia获取全局状态变量

    2024-04-07 09:48:03       29 阅读
  3. vue3挂载全局方法

    2024-04-07 09:48:03       40 阅读
  4. vue3挂载axios挂载全局方法

    2024-04-07 09:48:03       16 阅读
  5. Vue3-47-Pinia-修改全局状态变量值的方式

    2024-04-07 09:48:03       34 阅读
  6. vue3+TypeScript全局事件总线mitt

    2024-04-07 09:48:03       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 09:48:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 09:48:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 09:48:03       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 09:48:03       20 阅读

热门阅读

  1. vue3实现导出pdf、png功能

    2024-04-07 09:48:03       22 阅读
  2. Vue3:优化-从响应式数据中获取纯数据

    2024-04-07 09:48:03       19 阅读
  3. 用GPT-4调试 用Claude 3编码

    2024-04-07 09:48:03       16 阅读
  4. 前端进阶特训营-班会

    2024-04-07 09:48:03       18 阅读
  5. 内网安全之域内用户名枚举

    2024-04-07 09:48:03       47 阅读
  6. 计算机视觉入目要学习哪些东西及就业方向

    2024-04-07 09:48:03       25 阅读
  7. 1.接口自动化测试学习

    2024-04-07 09:48:03       15 阅读
  8. CSS中display: inline-block;的使用

    2024-04-07 09:48:03       18 阅读
  9. 前端开发语言概览:现代技术的演变与应用

    2024-04-07 09:48:03       22 阅读
  10. Matlab中的参数定义

    2024-04-07 09:48:03       19 阅读
  11. Mybatis

    Mybatis

    2024-04-07 09:48:03      17 阅读
  12. 简易通讯录管理系统:C语言实现及代码详解

    2024-04-07 09:48:03       14 阅读
  13. http请求处理相关注解、cookiesession

    2024-04-07 09:48:03       17 阅读