问题标签 [vuex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vuex - 使用 Vuex 进行异步调用
我刚开始在这里学习 Vuex。到目前为止,我一直将共享数据存储在一个store.js
文件中并在每个模块中导入store
,但这越来越烦人,我担心会发生变异。
我正在努力解决的是如何使用 Vuex 从 firebase 导入数据。据我了解,只有动作可以进行异步调用,但只有突变可以更新状态?
现在我正在从我的突变对象调用firebase,它似乎工作正常。老实说,所有的上下文、提交、分派等似乎有点过载。我希望能够使用最少量的 Vuex 来提高工作效率。
在文档中,看起来我可以编写一些代码来更新突变对象中的状态,如下所示,将其导入computed
属性中的组件,然后使用store.commit('increment')
. 这似乎是使用 Vuex 所需的最低数量,但操作从何而来?困惑:(任何关于最佳方式或最佳实践的帮助将不胜感激!
我的代码如下
store.js
main.js
应用程序.vue
vue.js - VueJS 从父组件访问子组件的数据
我的 Vue 组件结构/层次结构目前如下所示:
- 应用程序
- PDF 模板
- 背景
- 动态模板图像
- 静态模板图像
- 降价
- PDF 模板
在应用程序级别,我想要一个 vuejs 组件方法,它可以将所有子组件的数据聚合成一个可以发送到服务器的 JSON 对象。
有没有办法访问子组件的数据?具体来说,多层深度?
如果不是,那么传递可观察数据/参数的最佳做法是什么,以便当它被子组件修改时,我可以访问新值?我试图避免组件之间的硬依赖,因此到目前为止,使用组件属性传递的唯一内容是初始化值。
更新:
扎实的答案。在查看了两个答案后,我发现有用的资源:
vue.js - VuexFire 突变
对于使用过 VuexFire Vuex v2 的任何人。这里mutations: VuexFire.mutations
指的是什么?答案可能很明显,但我不知道这意味着什么。那我的实际突变去哪儿了?我现在正在使用 Vuex v1,它似乎工作正常,但我想升级到使用 Vuex v2。谢谢!
meteor - Akryum:Vuex 映射动作不是函数(typeError)
"this.actionName" 作为方法在 console.log 中未定义,但错误消息说它是 typeError 并且不是函数。我正在使用流星框架,并带有 vuex 的自定义实现。
以下是我认为相关的 pastebin:http: //pastebin.com/zGfuqwxw
vue.js - 如何监听从 API 加载的状态对象的变化?
如果我这样设置状态对象:
在视图方面,当我使用突变更改例如状态时,一切都在正确更改。
但如果我使用 API 响应设置工具:
响应是 100% 相同的,没有任何反应。状态对象的变化也可以在 Vue 调试器中看到。
所以我尝试的是添加 const state: { tools: { tool0: { status: true. 状态: } } }
并从 ajax 添加了 tool1 和 tool1(所以我的对象有 3 个子元素 tool0、tool1、tool3)。因此,如果我在 tool1 或 tool2(由 ajax 加载)上触发更改,则什么也没有发生。但是,当我在 tool0 上触发更改(之前硬编码)时,一切正常 - 在这种情况下,还应用了在 ajax 加载的内容上设置的设置。
感谢您的任何提示!
javascript - 我可以从 Vuex 商店中的突变之一调用提交吗
我有一个vuex商店,如下所示:
我想调用 mutation: SET_CATEGORIES
from mutation: SET_PRODUCTS
,但这给了我错误:
projectFilter.js:22 Uncaught (in promise) ReferenceError: commit is not defined(…)
什么应该是正确的方法来做到这一点。我试过store.commit
and this.commit
,但这些也给出了类似的错误。
vue.js - 计算属性未从 Vuex 存储对象更新
我有一堆类绑定语句:
这是上面提到的方法:
...以及该方法正在查看的计算属性:
处于 Vuex 状态。
问题是,当单击具有上述类绑定的下拉列表之一时,这些属性不会更新。如果我导航到另一条路线然后返回,则活动类已被应用得很好。我可以强制计算属性重新计算以便立即应用该类吗?
我知道添加属性不会触发反应性,但据此,如果我用新的对象替换对象,则应保持反应性。这就是我正在做的事情:
...替换对象。我难住了。
javascript - 如何在 Vuex 中使用带有 getter 和 setter 的计算属性来触发提交
我正在使用计算属性:category
在由 v-bind 绑定的输入字段中,如下所示:
我有这个计算属性的getter和setter,如下所示:
但是当我更改输入时,setter 不会被调用,我怎样才能实现这一点,或者有什么其他方法可以直接从 HTML 输入字段更改状态变量。
这是小提琴。
javascript - 使用 Vuex 在 Vue.js 中的计算属性上未从观察者更新数据变量
小提琴:https ://jsfiddle.net/mjvu6bn7/
我有一个计算属性的观察者,它依赖于异步设置的 Vuex 存储变量。我正在尝试设置 Vue 组件的数据变量,当这个计算属性发生变化时,但这并没有发生。
这是Vue组件:
这是 Vuex 商店:
这是为此创建的小提琴。如您所见,myVar 没有更新,但是当宠物加载时会调用 watcher。