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

Ale*_*ikh 6 vue.js vuex vuejs2

据我所知,vuex状态使用的最佳样本是可以由不同组件使用的购物车,或者vuex可以存储auth设置.

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

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

/users/
/user/:id
/user/edit/:id
Run Code Online (Sandbox Code Playgroud)

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

<UserDetailsPage>
    <Address :address="user.billingAddress"/>
    <UserGroupsList :user-groups="user.groups" />
</UserDetailsPage>
Run Code Online (Sandbox Code Playgroud)

UserDetailsPage从API检索数据并将用户数据对象存储在data()中.组件喜欢AddressUserDetailsPage从道具中获取所需的所有数据,只显示数据.

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

ste*_*nmd 7

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

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

通常,当您真正需要使用状态时,它就会变得明显.

  • 我注意到当我开始将道具传递给子组件时我需要Vuex,并且发现自己需要根据子组件中发生的计算更新这些道具.没有Vuex,这是非常麻烦的. (2认同)