我有几个Pinia商店,它们应该共享一组操作和getter,我不太确定如何有效地实现这一点。
我正在开发一个应用程序,让用户可以管理大量不同的媒体(书籍、电影、电视节目等)。我目前考虑的方式是为每种媒体类型(如书店、电影店等)建立一个商店。这些不同商店之间的许多getter和操作(如count
和deleteOne
)完全相同。
我如何在这里实现DRY?Pinia文档中有一些例子,主要集中在重用其他存储中的操作和getter,但我不认为这完全解决了我的完全继承一组getter和setter的用例。
我在这里尝试的继承方法是反模式吗?
1条答案
按热度按时间qlvxas9a1#
这可以使用docs插件实现
示例影片:
您有多个商店对每个州使用共享命名方案:
每个商店都有相同的CRUD操作,只有URL发生变化
创建插件:
示例movieStore.js(使用共享操作和状态)
组件中的使用示例
编辑:1
如果你把上下文传递到插件中,你就可以访问存储和传递到它的选项,从这里你可以检查存储id,并且只返回特定的存储,如下所示
我已经创建了一个非常基本的例子,使用3个商店和上面的检查代码andbox here