vue.js - 如何处理我的 vue 组件中更改的任何数据?
问题描述
我知道我可以“观察”我data
在 vue 中更改的特定属性,但是是否可以处理组件数据更改的任何部分?
例如,我有:
data() {
return {
myProp: false,
myOtherProp: true
}
}
我可以像这样添加手表:
watch: {
"myProp": function(val, oldVal) {
// Do something
}
}
也可以添加一个myOtherProp
,但实际上我有很多属性,如何为所有属性添加一个处理程序?
进一步的背景
这里的最终目标是检测“脏”状态,以便我可以确定是否警告用户他们可能会丢失未保存的更改。
我试过的
我知道我可能可以将我在数据中的所有属性组合成一种类型,然后观察它,但目前这种变化太具有破坏性,风险太大。我很想知道全局处理程序是否可行。
解决方案
最简单的方法是创建一个computed
属性,当这个属性改变时,你可以调用你的函数:
computed: {
hash () {
return `${this.myProp}
|${this.myOtherProp}
}
},
watch: {
"hash": function(val, oldVal) {
// Do something
}
}
推荐阅读
- python - 10个交叉折叠的混淆矩阵 - 如何做pandas dataframe df
- android - 我只想在卡片视图的底部添加阴影,我尝试了很多解决方案,但没有人给我我想要的
- unity3d - 我应该在 Unity 的 UI 预制件中包含 Canvas 父游戏对象吗
- powershell - 比较字符串数组并在匹配 Out-GridView 时显示结果?
- json - 从 json 加载引导表中的数据
- c - 难以理解 C 中的函数
- javascript - 数据类型的转换 - Javascript
- javascript - Lodash,找到给定一个 id 数组的每个对象
- node.js - 自发布的 NPM 包添加时不导入任何内容
- ruby-on-rails - 如何让 Sendgrid Inbound Parse Webhook 在生产中的 rails 应用程序中工作?