问题标签 [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.
vue.js - 方法 --> 动作 --> 变异 --> 状态问题
我的函数应该使用自身的参数将 JSON 迭代地插入到特定级别的嵌套 JSON 的每个元素中,它复制了返回的第一个对象并将其插入到每个嵌套参数中。请参阅下面的屏幕截图和代码,以了解我在做什么。
基本上,我在状态中有一个嵌套的 JSON 对象,并且需要使用从 API 返回 JSON 的操作然后更新状态的突变迭代地附加到现有对象的每个“行”的嵌套属性。
问题在于我认为的突变。我推断我的函数是复制从 API 返回的第一个 JSON 对象。请参阅下面的 Action 和 Mutation 函数,以及 JSON 的 API 函数和结构。
http://api.capecodcommission.org/docs/index.html#sumofannualcapitaltotalsfortreatment
特定组件中的函数使用 v-for 运行:
运行函数,查看 JSON:
V-for 循环:
接口函数:
行动:从 API 中提取 JSON,调度突变函数。
突变:使用 JSON 更新状态。
编辑:下面的图片
组件:http: //i.imgur.com/lcS5Fgo.jpg
JSON结构:http: //i.imgur.com/AsANZOp.jpg
javascript - 在 Vuex getter 中使用组件道具的正确方法是什么?
假设您有一个简单的应用程序组件,其中包含一个按钮,可以使用 vuex 商店从计数器组件中添加多个计数器。
有点像vuex git repo中的基本反例。但是您想使用带有通过组件上的属性传递的 ID 的 vuex getter,您会怎么做?
getter 必须是纯函数,因此您不能使用this.counterId
. 官方文档说您必须使用计算属性,但这似乎也不起作用。此代码为 getter 返回 undefined:
javascript - Vue.js 2.0 中兄弟组件之间的通信
概述
在 Vue.js 2.x 中,model.sync
将被弃用。
那么,在Vue.js 2.x中的兄弟组件之间进行通信的正确方法是什么?
背景
据我了解 Vue.js 2.x,兄弟通信的首选方法是使用 store 或 event bus。
根据Evan(Vue.js 的创建者)的说法:
还值得一提的是“在组件之间传递数据”通常是一个坏主意,因为最终数据流变得无法跟踪并且很难调试。
[讨论链接]
和:
.once
并.sync
已弃用。道具现在总是单向下降。为了在父作用域中产生副作用,组件需要显式地显示emit
一个事件,而不是依赖于隐式绑定。
因此,Evan 建议使用$emit()
and $on()
。
关注点
我担心的是:
- 每个
store
都event
具有全局可见性(如果我错了,请纠正我); - 每次小交流都新建一个店铺太浪费了;
我想要的是兄弟组件的一些范围 events
或可见性。stores
(或者也许我不明白上面的想法。)
问题
那么,兄弟组件之间的正确通信方式是什么?
javascript - 使用 Vuex 进行精细组织
我正在做一个相当大的项目,我想将Vuex
模块分成尽可能多的部分。例如,我想将API
功能从中分离出来UI
,将来自服务器的数据与组件标志隔离开来,等等。
在文档(http://vuex.vuejs.org/en/structure.html)中,作者建议将所有内容分解为modules
,这很好。当我拥有products
页面和products
数据时,问题就出现了,我想让它们分开。
是否有可能实现这样的目标:
并且能够像store.api.products
和store.pages.products
?我弄错了吗?
谢谢!
components - 尽管状态更新,为什么 vuex 组件没有更新?
当我加载我的页面时,我会获取一个optboxes
items列表。
来源
项目来源在线:
optboxes
页面;- 存储(存储、操作、突变、获取器)。
optboxes
页面
HTTP 请求很好地发送并返回足够的数据:
我正在迭代结果如下:
店铺
问题
如果我切换到其他页面并返回,则会出现列表。我还注意到,使用 Vuex 扩展,我可以提交状态并查看更改。
为什么我的更改没有自动应用?
vue.js - 为什么 vuex 存储更新后计算值不更新?
我得到了一个printerList
计算属性,应该在getPrinters()
解析后重新评估,但看起来不是。
来源在线:optbox.component.vue,vuex,optboxes.service.js
零件
行动
突变
问题
为什么不printerList
重新评估计算的属性(即为v-for
空)
javascript - 在 VueJS 中查看存储在 Vuex 中的数组
我有一个客户列表,它实际上是一个对象数组。我将它存储在 Vuex 中。我在我的组件中呈现列表,每一行都有一个复选框。更准确地说,我使用了敏锐的 UI,复选框渲染部分如下所示:
所以复选框直接改变了客户数组,这是不好的:我在 Vuex 中使用严格模式,它会抛出一个错误。
我想跟踪数组何时更改并调用操作以更改 vuex 状态:
然而,它仍然直接改变了客户。我怎样才能解决这个问题?
vue.js - vue.js:如何从动作中访问组件数据?
我正在使用 webpack、vue、vuex、vue-loader 等。我不确定这些设置是否正确。
然后我的行动:
我遇到的问题是,由于此表单是使用 AJAX“提交”的,因此当响应返回无效时,表单输入会保持填写状态。因此,我需要一种方法来从操作logininfo.password = ''
中清除该表单字段。但我不确定如何再次访问该组件的数据。也许我误解了一些东西,这个数据(登录信息)真的应该在 vuex 存储中吗?我觉得这些数据不应该在主状态存储中,因为我实际上只是使用它来将凭据传递给后端,这就是我将数据本地化到组件的原因。
任何提示/建议?
javascript - 从Vuex中的数组中删除特定项目
我仍在学习 vue.js 的过程中,并且正在做一个小项目,以帮助我了解有关使用 Vuex 创建更大规模应用程序的更多信息。
我遇到了一个问题,我试图使用应用程序中的按钮从数组中删除特定项目;我似乎无法在 Vuex 中获得正确的语法来执行此操作。这是我正在使用的:
店铺
行动
吸气剂
应用程序
我设置了一个操作,它将向数组中添加一个空白项,当您单击一个add item
按钮时,它将在应用程序中放置一个新组件,只是不确定如何为remove item
每个组件添加一个按钮并使其正常工作。
我希望这是有道理的!
javascript - Vue.js:在@click-Method 中获取当前的`v-for` Objekt
我有一个包含 v-for 的列表,其中包含几个文件夹。当我单击其中一个时,我想要执行一个函数。
我的代码如下所示:
有没有一种简单的方法可以访问当前文件夹(没有子组件)?
(我也在使用 Vuex,但由于这是一个仅 UI 的操作,无需修改数据,我认为避免 Vuex 操作的良好做法,对吧?)