vuex的基本用法(提炼公共文件import all vuex modules)

2023-10-26

1、第一步是你的package.json中需要有 “vuex”: “3.5.1”; 如果没有安装vuex,就先安装一下

2、 在src下创建一个文件store,store下创建一个文件modules, index.js; 下面继续创建文件
最终的目录文件如下:
在这里插入图片描述
从最里面开始:

  1. store/modules/vuex/modules 文件用于存放项目中所有的需要利用vuex存储的数据文件;这里里global.js为例
  2. store/modules/vuex/modules/global.js 中:
 export default {
  namespaced: true,
  state: {
    // 页面缓存后是否显示模态框标记
    showModel: false // 标记是否显示模态框
  },
  mutations: {
    /** 设置是否显示模态框的值 */
    setShowModel(state, flag) {
      state.showModel = flag
    }
  }
}

说明: 在vuex/modules文件中可以创建很多的js文件,然后在store/modules/vuex/index.js中进行全部引入,避免每次创建,都需要手动的引入文件。
3. store/modules/vuex/index.js 中:

在这里插入代码片const files = require.context('./modules', false, /\.js$/)
const modules = {}

files.keys().forEach(key => {
  modules[key.replace(/(\.\/|\.js)/g, '')] = files(key).default
})

export default {
  namespaced: true,
  modules
}

  1. 在store/index.js 进行引入
import Vue from 'vue'
import Vuex from 'vuex'

import vuex from './modules/vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  modules: {
    vuex
  }
})

  1. 在main.js中注入
import store from './store'
new Vue({
  el: '#app',
  router,
  store, // store加入
  render: h => h(App)
})

然后去想用的界面使用:

<template>
  <div id="app">
    <router-view />
    <div v-if="showModel">
      测试
    </div>
    <button @click="btnClick">点击改变showModel的值</button>
  </div>
</template>
<script>
import { mapState, mapMutations } from 'vuex'
export default {
  name: 'App',
  computed: {
    ...mapState('vuex/global', [
      'showModel' // 映射this.showModel为this.$store.state.showModel
    ])
  },
  methods: {
    ...mapMutations('vuex/global', ['setShowModel']),
    btnClick(){
    	this.setShowModel(!this.showModel)
    }
  }
}
</script>
<style lang="scss"></style>

说明,每增加一个vuex数据js文件只需要在store/modules/vuex/modules下创建使用即可;然后更改模板中的文件名称: 如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vuex的基本用法(提炼公共文件import all vuex modules) 的相关文章

  • Vuex 响应式 mapGetters 并传递参数

    我有很多 getter 将参数传递给商店 例如 this store getters getSomeThing this id 我没有找到有关如何最佳使用的建议mapGetters保持反应性 同时传递参数 我发现的一个建议是映射 gette
  • 如何使用vuex删除一个项目?

    我刚开始学习vuex 无法删除item 我可以直接在组件中删除项目 deleteCar cars id this http delete http localhost 3000 cars cars id then gt this cars
  • 使用 Vuelidate 进行条件验证?

    我有一个表单 可以根据参数应用不同的验证action 存储在VUEX存储中 我试试这个 data function const validations sendToProject cardProject required recallToB
  • Vuex 模块中的 Nuxtjs Axios CORS 错误

    我正在使用 Nuxtjs 和内置 Vuex 模块以及 Nuxtjs 的官方 axios 我试图从本地服务器获取数据 但它总是抛出 CORS 错误 因此 我对 Github 的公共端点进行了 API 调用 但没有成功 仅在控制台中收到 COR
  • 在 Vuex Store 中分页时维护状态

    我正在对来自 Vuex 商店的数据进行分页 我能够成功完成此操作 但在将数据添加到购物车时遇到问题 我只能将一项添加到购物车中 添加第二项时出现 无法读取未定义的属性 id 错误 我已经改用 Vuex 状态映射 它可以工作 但我仍然收到错误
  • 访问嵌套对象时 Vue 发出警告

    我不知道为什么在访问嵌套对象时会收到 Vue 警告 user area name Vue warn 渲染错误 TypeError 无法读取未定义的属性 名称 类型错误 无法读取未定义的属性 名称 仅访问该对象没有任何警告 user name
  • Vuex:跳过操作并直接从组件提交突变

    在 vue js 应用程序中 使用 vuex 作为状态管理存储 我只需更改 vuex 中属性的值 为此 我可以采用两种方法 派遣action方法 这将进一步提交mutation 最终会改变状态 第二种方法是提交mutation直接来自组件
  • 将 Mutations 添加到 Vuex 存储作为 Vue 插件的一部分

    我正在创建一个小型 Vue 插件 允许用户从任何组件内添加 页面通知 我已经成功地实现了类似的东西 this notifications add a message 它有效 但我必须注册我的插件工作所需的突变和操作 作为为我的应用程序设置商
  • Vuex - 多次调度后运行函数

    我正在创建一个应用程序 在某个时刻我需要加载一些数据 但为了让用户看不到损坏的数据 我插入了一个加载组件 目前 我在负载中放置了 setTimeout 但在某些时候 API 响应可能需要超过 1 秒 所以我想仅在所有调度完成时更新加载状态
  • 如何重新加载 vue 组件?

    我知道解决方案是像这样更新道具数据 this selectedContinent 但我想使用另一种解决方案 在我阅读了一些参考资料后 解决方案是 this forceUpdate 我尝试了一下 但不起作用 演示和完整代码如下 https j
  • 如何将复选框绑定到Vuex存储?

    我有一个包含一些复选框的组件 我需要能够访问从 Vue 应用程序中的其他组件检查了哪些复选框 但我无法弄清楚 也无法在网上找到 如何将复选框正确连接到我的 Vuex 商店 将组件内的复选框连接到 Vuex 存储的正确方法是什么 以便它们的行
  • Vue - API 调用属于 Vuex 吗?

    我正在努力寻找在 vue 模块中理想的 API 调用位置的答案 我不是在构建 SPA 例如 我的 auth 块有几个用于登录 密码重置 帐户验证等的组件 每个块都使用 axios 进行 API 调用 Axios 已经提供了异步的 Promi
  • Vue.js 严格模式下不允许对一个属性进行多个定义

    再会 我们正在使用 Vuejs Vuex vue router 构建我们的应用程序https github com vuejs vue hackernews 2 0 https github com vuejs vue hackernews
  • 如果用户在 Laravel 中经过身份验证,如何检查 Vue 组件?

    正如标题所述 我有点困惑如何根据用户是否登录并使用 Laravel 的 Auth 外观进行身份验证 使用 if else 语句处理 Vue 组件中的方法 我正在发出各种 Axios 请求 我需要根据用户是否登录来允许 禁止这些请求 我有 V
  • 构建 Vue 微前端应用程序(带有路由和 vuex 存储)

    我需要帮助配置使用 Vuex Vue Router 和 Vue i18n 的微前端应用程序的构建 分发 TL DR 我在构建将导入到现有系统中的微前端应用程序时遇到问题 我们的团队尝试通过 vue cli service 和 vue web
  • Web 扩展中共享 vuex 状态(死对象问题)

    我正在尝试在网络扩展中使用共享的 vue js 状态 状态存储在后台脚本的 DOM 中并呈现在弹出页面中 第一次尝试 我的第一次尝试是使用一个没有 vuex 的简单商店 背景 js var store count 0 popup js br
  • Asyncdata 与 Fetch 之间的区别

    获取数据和异步数据之间的确切区别是什么 官方文档是这么说的 异步数据 您可能想要获取数据并在服务器端呈现它 Nuxt js 添加 asyncData 方法 让您可以在之前处理异步操作 设置元件数据 异步数据每次在加载组件之前调用 仅适用于
  • Vue 监听 Vuex 提交吗?

    有没有一种方法可以监听 Vuex 提交 而不观察任何随提交而更改的属性 只是简单地找出是否发生了提交 我有一个 Filter 组件 想将其放入 NPM 包中 但我已经有一个用例 在该用例中 我希望设置一个 cookie 在选择过滤器时存储过
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 认识电阻种类

    什么是电阻 导体对电流的阻碍作用就叫该导体的电阻 电阻 Resistor 通常用 R 表示 是一个物理量 在物理学中表示导体对电流阻碍作用的大小 导体的电阻越大 表示导体对电流的阻碍作用越大 不同的导体 电阻一般不同 电阻是导体本身的一种性
  • 【Android】新版本Activity跳转新Activity返回后获取数据方式

    在Activity跳转到新的Activity后 然后在新的Activity返回原来的Activity时 我们需要获取到从新的Activity获取到的数据 原来的做法是使用 startActivityForResult 但是在新的Androi
  • JackSon Double类型转换为BigDecimal类型

    话不多说直接放代码 SimpleModule module new SimpleModule module addSerializer Double class new StdSerializer BigDecimal class Over
  • Java学习笔记-----包,final,权限修饰符和代码块

    一 包 包就是文件夹 用来管理各种不同功能的Java类 方便后期代码维护 包名的规则 公司域名反写 包的作用 需要全部英文小写 见名知意 使用其他类的规则 使用其他类时 需要使用全类名 包名 类名 使用同一个包中的类时 不需要导包 使用ja
  • No identifier specified for entity: com.aoshen.entity.User

    问题描述 在整合JPA的时候 用代码来生成数据库表和数据 在实体类User的主键ID上加 Id注解 有一个坑 Id 有两个注解方法 当你引入第二个时候就会报错 org springframework beans factory BeanCr
  • 一个人才数据网的爬虫软件

    最近表哥让我帮他写个软件 定时爬取一个人才数据网站的信息 思路和方法很简单 不过过程中遇到的坑真的不少 今天对整个软件的开发过程做个记录 网站是 余姚人才网 链接就不上了 百度第一个就是 还是老样子 python request beaut
  • SpringCloud基础8——多级缓存

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 1 多级缓存流程 2 JVM进程缓存 2 1 d
  • Linux文件上传与下载

    之前都是用Xftp工具在本地和linux系统之间上传下载文件 最近觉得麻烦 因为平时用Xshell连接 要传输文件的时候还要额外使用别的工具 下面使用 lrzsz 即可完成 Linux 的文件上传与下载 lrzsz 的安装 我在测试的时候
  • 55-基于栈的指令集与基于寄存器的指令集详细比对

    基于栈的指令集与基于寄存器的指令集详细比对 现代JVM在执行Java代码的时候 通常都会将解释执行与编译执行二者结合起来进行 解释执行 就是通过解释器来读取字节码 遇到相应的指令就去执行该指令 编译执行 就是通过即时编译器 Just In
  • 如何删除gitlab上默认受保护的master主分

    这里写自定义目录标题 1 找到对应项目 去到仓库 分支 查看分支情况 如果为 pr 点击 项目设置 2 展开对应 Protected Branches 3 点击 unprotect 就ok了 4 完成后 回到当前 ok 了 这样就可以使用
  • python怎么安装matplotlib.pyplot

    我先解释一下 这是windows系统下的安装方式 我也是刚入门 不知道自己的安装方法是否适合别人 就不多说了 以下是过程 1 https pypi python org pypi matplotlib 有一个下载选项 在这个网站上选择车轮文
  • Python微信小程序,实现自动回复等功能(itchat模块)

    本文是使用Python的itchat模块进行微信私聊消息以及群消息的自动回复功能 必须在自己的微信中添加微信号xiaoice ms 微软的微信机器人 才能实现 直接复制代码运行之后扫一扫二维码即可 经过测试 该程序能够保持几小时的时间 实现
  • [Codeforces] combinatorics (R1600) Part.1

    Codeforces combinatorics R1600 Part 1 题单 https codeforces com problemset tags combinatorics 1201 1600 52B Right Triangle
  • 在现实实践中会遇到的机器学习算法总结

    在理解了我们需要解决的机器学习问题之后 我们要思考需要收集什么数据以及我们可以用什么算法 本文我们会过一遍最流行的机器学习算法 大致了解哪些方法可用 很有帮助 机器学习领域有很多算法 然后每种算法又有很多延伸 所以对于一个特定问题 如何确定
  • 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

    1 启动nginx的方式 cd usr local nginx ls nginx c nginx conf 2 查看nginx的进程方式 root localhost nginx ps ef grep nginx root localhos
  • 103-----JS基础-----添加删除记录-删除

    一 代码 很简单 看一下即可
  • TensorFlow学习-anaconda的方式安装TensorFlow教程

    前置准备 首先在说到安装TensorFlow前 要安装好anaconda 这里引入一篇教程anaconda安装与使用 初学者另外也需要在官网安装对应的python包python官网 有这些前置准备后 就可以安装TensorFlow了 采用a
  • linux下ftp的使用命令

    1 登录ftp ftp 0 0 0 0 输入用户名和密码 登录成功 2 ftp帮助 help 显示本地可用命令 rhelp 显示远程终端可以使用的命令 3 切换目录 cd 切换远程终端的当前工作目录 lcd 切换本地的当前工作目录 pwd
  • Centos7离线安装依赖包

    Centos离线安装依赖包 文章目录 Centos离线安装依赖包 1 下载依赖包 1 1 使用yum install downloadonly下载安装包及其依赖 1 2使用yumdownloader下载安装包及其依赖 2 安装下载好的依赖包
  • vuex的基本用法(提炼公共文件import all vuex modules)

    1 第一步是你的package json中需要有 vuex 3 5 1 如果没有安装vuex 就先安装一下 2 在src下创建一个文件store store下创建一个文件modules index js 下面继续创建文件 最终的目录文件如下