import { defineStore, acceptHMRUpdate } from 'pinia';
import { v4 as uuidv4 } from 'uuid';
export const useStoreNotes = defineStore('storeNotes', {
state: () => ({
notes: [
{
id: '8d3ce756-ef35-4e68-80bd-fb97e03a831b',
content: 'Learn React',
},
{
id: '11860d36-cb57-455e-9b9c-083ef5762f7e',
content: 'Learn Java',
},
],
}),
})
if (import.meta.hot) {
import.meta.hot.accept(acceptHMRUpdate(useStoreNotes, import.meta.hot));
}嘿,我正在尝试使用HMR (热模块替换)在皮尼亚(Vuex5)。我也在用维特。我尝试使用Pinia:https://pinia.vuejs.org/cookbook/hot-module-replacement.html的官方文档中的热重加载。
但热重装不起作用。如果我在商店中更新了什么东西,我必须刷新页面,并且我希望看到这些更改而不刷新页面。
发布于 2022-08-16 21:09:12
看起来你有正确的语法。我的猜测是,和我一样,当您更改状态值时,您期望页面更新;然而,HMR看起来实际上是按预期工作的。见这个问题的答案
是的,这样做的想法是添加新状态不应该重置状态的其他值,这样就可以始终保留现有的状态值。这也意味着您可以更改一个值,注释行并保存(这将移除状态属性),然后再运行注释和保存。
我能够认识到HMR确实是通过打开终端来工作的,注意到我对商店的更新已经被记录下来了。参见我的终端示例。
同样,如果向存储添加了新状态,则应该在Vue DevTools中看到相应的存储更新。这两种方式使我能够确定HMR正在按计划工作(不幸的是,这不是我所希望的)。
最后,正如对上述GitHub问题的响应中所提到的,您确实可以注释掉状态代码,保存,取消注释,然后再次保存以强制新值出现。在我看来并不理想,但我认为这是一个可行的解决办法。
https://stackoverflow.com/questions/72883410
复制相似问题