首页
学习
活动
专区
圈层
工具
发布

Vuex
EN

Stack Overflow用户
提问于 2020-08-08 23:27:54
回答 1查看 595关注 0票数 0

如果我在App.vue中加载一个大型对象并将其提交给init存储,那么在父组件中执行mapStating并将该对象传递给子对象(在那里它将被迭代/使用/显示)更好,还是直接在使用对象的子组件中mapState对象更好?

跟进..。这两种方法之一是改变someBigArray的可用性吗?我发现我总是必须深入观察mapStated对象,并在变化时将它们分配给本地data()变量,这就像是一次黑客攻击。

// state.someBigArray

代码语言:javascript
复制
// ---------------------------------------> parent 

<template>
  <Child :the-object="someBigArray"/>
</template>
computed: mapState(["someBigArray"]),

// ---------------------------------------> child 

<template>
  <div v-for="item in someBigArray">
     {{ item.name }}
  </div>
</template>

<script>
export default {
props: {
  locations: {
    type: Array,
    required: true,
    default: () => [],
  },
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-08 23:50:34

根据您的具体情况,您可以从Vuex那里获得数据。但是如果您的子组件是一个不应该进行任何计算的UI组件,那么我最好用道具传递所有数据,不管它有多大。

此外,您可以通过为您的数据创建一个getter并在组件的mapGetters部分中使用computed来避免此类攻击。我发现使用mapState有点不安全,所以我更喜欢使用mapGetters。

更新

实际上,Vuex 鼓励使用mapState,因此,如果您不需要以某种方式修改数据,那么getter似乎是不必要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63321126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档