如何在Vuex中存储非响应式数据?

2024-01-09

我有数据,在 VueJS 应用程序初始化之前加载到页面上一次,并且该数据不会一直更改,而 html 页面不会重新加载(经典 CGI 应用程序,而不是 SPA)。数据示例:

const nonReactiveObjectWithSomeNestedData = {
  a: 'a',
  b: {
    bb: 'bb',
    cc: { ccc: 'ccc' },
    dd: ['dd1', 'dd2']
  }
}

我在一些 vue 组件中使用这些数据。将这些数据存储在 Vuex 命名空间模块中并使用 Vuex-getters 为不同的 vue 组件包装相同的功能会很方便。有什么办法可以不在vuex内部存储这些数据state(不需要反应性)但是能够从 vuex-module 的 getter 访问?

PS.目前我正在使用存储非反应性数据vue 实例内部 https://github.com/vuejs/vue/issues/1988#issuecomment-163013818方法,但现在还不够,我需要对数据进行更多的全局访问(来自两个独立的根组件)。


在将对象添加到存储之前先冻结该对象:

Object.freeze(nonReactiveObjectWithSomeNestedData )

Vue 不会使冻结的对象具有反应性。

Note:你应该在对象进入 Vuex 突变/操作之前冻结它:

this.$store.dispatch('moduleName/setNonReactiveObject', 
    Object.freeze(nonReactiveObjectWithSomeNestedData));

在突变函数内部,有效负载参数将已经是反应性的。

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

如何在Vuex中存储非响应式数据? 的相关文章

随机推荐

  • JAXB 中的解组器和架构

    我有可以以各种格式保存文件的应用程序 所有格式都是xml 所以我应该解决确定文件保存格式的问题 所以 我看到了 2 个解决方案 不同的格式有不同的模式 所以我可以通过它们来确定它 我以我得到的方式设置模式here https stackov
  • Drupal:数据库中的内容类型不在结构>内容类型的内容类型列表中

    不久前我创建了两种内容类型 protocol 和 protocol2 它们有点不同 我还不确定哪一个最适合我的目的 所以我尝试了两者并为每种创建了一些内容 经过一番测试后 我得出结论 协议 2 是我要使用的协议 并且我希望将其称为 协议 而
  • 使用多个几何时如何消除 ggplotly 重复的图例条目

    我正在尝试在 R 中制作一个分面绘图线图 无论有多少个组可用于分面 它都会生成一个图 运行以下代码时 我得到了一个理想的绘图 如下图所示 R 3 6 0 most of these packages not necessary librar
  • 在python dask中读取带分隔符的csv

    我正在尝试创建一个DataFrame通过读取由 5 个哈希值分隔的 csv 文件 代码是 import dask dataframe as dd df dd read csv D temp csv sep engine python res
  • 将动态数据源路由与 spring-data-rest 结合起来

    我正在使用动态数据源路由 如本博客文章中所示 http spring io blog 2007 01 23 dynamic datasource routing http spring io blog 2007 01 23 dynamic
  • 忽略 Git 中的 .classpath 和 .project

    我一直告诉自己和其他人不要提交 classpath 和 project 文件并使用 Maven 不知何故 初级开发人员总是忽略某些规则并提交这些文件 对于可以跳转并开始使用代码的新手来说 拥有这样的文件要好得多 现在从我这边来说 我想尝试
  • 如何通过 HTTP 代理从 Git 存储库中提取内容?

    注意 虽然描述的用例是关于在项目中使用子模块 但这同样适用于正常的git clone通过 HTTP 的存储库 我有一个受 Git 控制的项目 我想添加一个子模块 git submodule add http github com jscru
  • AWK 的 END 块中定义了字段吗?

    使用时会发生什么 1 2 在里面END块 如 awk print 3 END print 1 2 我找到 1 and 2保留最后一条记录的值 这种行为是由标准保证的还是特定于实现的 检查docs https www gnu org soft
  • Thread.CurrentPrincipal 已通过身份验证,但 ClaimsPrincipal.Current 未经过身份验证

    我在 WebApi 项目中使用基于声明的授权 并有一种方法可以检查当前身份是否经过身份验证 当我使用ClaimsPrincipal Current当前身份未经过身份验证 但是当我使用Thread CurrentPrincipal it is
  • 修改jenkins master中的PATH变量

    我正在尝试修改 jenkins 主节点中的 PATH 我没有从站 从 全局属性 gt 环境变量 中 我添加了 2 个条目 PATH 值为 PATH opt foo FOO 为值 BAR 现在 当我运行自由式作业时 执行 shell 构建步骤
  • DialogFragment 在调用 startActivity() 时导致 Activity 崩溃

    我有一个DialogFragment这本来应该很简单 但它给我带来了一些大问题 特别是在 Jelly Bean 上 该应用程序使用网络 并弹出一个对话框 要求用户打开 WiFi 或取消 然后将其关闭 所以它延伸了DialogFragment
  • 旋转时碎片消失

    我使用 java 添加了片段 当我以纵向模式打开应用程序时 它可以工作 如果我旋转片段就会消失 但如果我关闭应用程序 然后旋转手机 然后再次打开应用程序 它就可以工作 我有两种不同的布局 一种用于纵向模式 另一种用于横向模式 两者具有相同的
  • 如何将来自邮递员的对象作为数字推送(validationError)?

    我的主要问题是我无法将数量推送到其各自的对象 我在邮递员中以 JSON 格式发布数据 如下所示 productId 621256596fc0c0ef66bc99ca quantity 10 我的架构是 userOrders productI
  • 使用语法规则在Scheme中隐式柯里化?

    Jeffrey Meunier 有一个隐含的 Curry 宏here http www engr uconn edu jeffm Papers curry html 它使用 defmacro 我想知道是否有人用语法规则写过这个 Scheme
  • C#.Net:为什么我的 Process.Start() 挂起?

    我正在尝试以另一个用户的身份从我的网络应用程序运行批处理文件 由于某种原因 批处理文件挂起 我可以在任务管理器中看到 cmd exe 正在运行 但它只是永远坐在那里 无法被杀死 并且批处理文件也没有运行 这是我的代码 SecureStrin
  • 使用 Jackson 将 protobuf 转换为 JSON?

    使用 Jackson 的 ObjectMapper 将 protobuf 转换为 JSON 时出现以下错误 com fasterxml jackson databind exc InvalidDefinitionException Dire
  • 在 Reporting Services 2005 中将字段显示为逗号分隔列表?

    见标题 基本上 此报告中的数据设置为字段 A 中的每个值在字段 B 中都有多个对应的值 并且我需要将字段 B 显示为逗号分隔的列表 根据互联网 通过 2008 年的 Join 和 LookupSet 组合 这是完全容易的 但我是 2005
  • Stripe:验证可发布和秘密 API 密钥

    我正在构建一个网络应用程序 允许我们的用户出售音乐表演的门票 为了处理购票者和演出发起人之间的付款 我使用了 Stripe 基本上 节目发起者在我的应用程序上创建他的节目页面 用户可以购买该节目的门票 为了创建一场演出 发起人需要填写一份表
  • 如何使用 Bower 在 javascript 项目中包含私有本地文件

    我想包含一个自定义文件作为 Bower 依赖项之一 我有以下 Bower json name xyz version 0 0 0 dependencies sass bootstrap 2 3 0 requirejs 2 1 4 moder
  • 如何在Vuex中存储非响应式数据?

    我有数据 在 VueJS 应用程序初始化之前加载到页面上一次 并且该数据不会一直更改 而 html 页面不会重新加载 经典 CGI 应用程序 而不是 SPA 数据示例 const nonReactiveObjectWithSomeNeste