Vuex:是否有确定状态是否发生变化的"best practice"?



我和我的团队创建了一个Vuex模块,用于存储表单的用户输入内容。如果表单包含未保存的更改,并且用户试图导航离开,那么我们希望警告用户,以便他们有机会取消导航。

如果我们可以简单地对照内置的getter进行检查,那就太好了。也许类似于:

if (this.$store.getters['myModule/hasChanged']) {
// alert user
} else {
// allow user to proceed
}

我们已经讨论过深入观察状态,并在每次发生突变时生成哈希,但对这种方法可能带来的性能后果提出了质疑。

我们已经考虑过翻转布尔值(无论是在保存表单的组件中还是在状态本身中(,以指示是否发生了更改,但我们一致认为,我们宁愿不硬编码这样的值。

是否有确定给定模块的状态是否已更改的最佳实践?

谢谢。

我建议使用另一种方法:

  1. 将所有输入存储在组件本身中
  2. 跟踪组件本身的更改并设置一些布尔标志isChanged
  3. 当用户导航离开时:
if (this.isChanged) {
// alert user
} else {
// store all inputs to a state
// allow user to proceed
}

相关内容

最新更新