从 Nuxt 中的另一个组件更新组件内容的最佳解决方案

Best solution to update component content from another component in Nuxt

我是 Nuxt 和 Vue 的新手,所以我不确定这个用例的最佳解决方案是什么。

我想更改文本 (如“主页”、“设置”、“收藏夹”等) 我的Header.vue (始终固定在页面顶部) 来自另一个组件。 例如 Favourites.vue

有时我想完全隐藏 header 或者隐藏标题和显示按钮, 所以 我需要传递更多的道具,而不仅仅是标题。

我尝试使用不同的布局,但这会破坏动画过渡(我还没有找到解决方案),但是 我认为从页面 控制我传递给这个组件的内容更好。


我是否应该将道具从 Page.vue 传递到parent并在[=11中从那里读取它=] 组件?

我应该使用 Vuex 通过商店传递它并 在路线改变时更新它吗? 或者对于这个来说太复杂了用例?

也许有一个我不知道的更简单的解决方案。


文件夹结构:

/components
├──Header.vue
└──Nav.vue

/pages
├──Index.vue
├──Profile.vue
├──Settings.vue
└──Favourites.vue

Vuex 就是答案——不用担心 'simple' 用例。一旦您注意到您正在创建其他组件可能依赖的数据(此页面上的页眉是否可见?文本是否不同?等),转入 Vuex 并维护单一的真实来源是个好主意。

您的应用程序一开始可能看起来很简单,但它不可避免地会增长,到那时您会欣赏拥有单一事实来源而不是尝试通过 props 在组件之间传递事物。

Nuxt 还使 Vuex 的实现变得非常直接。毫无疑问,您有能力提升 docs!