我什么时候应该使用组件数据而不是vuex状态?

时间:2017-11-28 22:28:36

标签: vue.js vuejs2 vuex

据我了解,vuex状态使用的最佳样本是购物车,可供不同组件使用,或者vuex可以存储身份验证设置。

但是如果我有基于vue-router页面的SPA怎么办?我应该将页面数据存储在vuex状态还是component.data足够好呢?

例如,我有以下页面的SPA:

/users/
/user/:id
/user/edit/:id

对于/ user /:id我有以下组件结构:

<UserDetailsPage>
    <Address :address="user.billingAddress"/>
    <UserGroupsList :user-groups="user.groups" />
</UserDetailsPage>

UserDetailsPage从API检索数据并将用户数据对象存储在data()中。 像AddressUserDetailsPage这样的组件会从道具中获取所需的所有数据并只显示数据。

将用户存储在页面组件中是个好主意吗?

2 个答案:

答案 0 :(得分:7)

根据我的理解,当您需要在兄弟组件之间进行通信或传递数据时,或者如果一个组件中的数据更改(例如布尔更改)触发另一个组件的更改时,Vuex状态管理就会发挥作用。

例如,如果您想要存储用户的联系人或产品信息,并在结帐过程中将其呈现在单独的组件上,则Vuex会很有用。但是,如果您只是为独立组件渲染数据,那么使用组件数据(使用简单指令绑定或从API获取)就可以了。

通常情况下,当你真正需要使用状态时就会变得明显。

答案 1 :(得分:1)

如果需要将相同的数据渲染到多个组件,则应使用Vuex存储。 Vuex存储在初始设置级别增加了代码的复杂性,但是事后,将API数据用于多个组件是如此简单而轻松。这并不意味着在每个应用程序中都使用Vuex存储。如果您正在开发本质上是渐进式的应用程序,并且将来会变得更加复杂,那么请开始使用Vuex store。