javascript - vue.js 阻止一个数据元素触发更新
问题描述
嗨,有没有办法只为一个元素停止触发 vue 实例中的更新方法?这是我的代码,
vue 实例..
var vm = new Vue({
el: '#el',
data: {
cap: "",
radius: "",
var1: "",
var2: "",
var3: "",
items: null,
}
updated: function () {
axios.post('{{ url('car_result') }}', {data: this.$data})
.then(response => {
this.items = response.data;
});
}
});
这是我的dom。
<div id="el">
<input v-model="cap" type="text">
<input v-model="radius" type="text">
<input v-model="var1" type="text">
<input v-model="var2" type="text">
<input v-model="vat3" type="text">
<div class="item" v-for="item in items">
{{ item.id }}
</div>
</div>
在这里我需要在项目更改时停止触发更新方法
解决方案
如何将您的输入变量分组为一个input
,然后设置一个观察者并items
仅在input
更改时更新?
var vm = new Vue({
el: '#el',
data: {
input: {
cap: "",
radius: "",
var1: "",
var2: "",
var3: ""
},
items: null,
},
watch: {
input: {
handler (newInput) {
axios.post('{{ url('car_result') }}', { data: newInput })
.then(response => {
this.items = response.data;
});
},
deep: true
}
}
});
在您的模板中:
<div id="el">
<input v-model="input.cap" type="text">
<input v-model="input.radius" type="text">
<input v-model="input.var1" type="text">
<input v-model="input.var2" type="text">
<input v-model="input.vat3" type="text">
<div class="item" v-for="item in items">
{{ item.id }}
</div>
</div>
推荐阅读
- mysql - 如何向用户生成的 sql 查询添加 LIMIT
- reactjs - 如何更新 DynamoDB 中的字段?
- javascript - 为什么 new Date(2018,12, 25) 给出错误的月份和年份?
- mysql - Laravel 通过 schedule 命令循环遍历数据库中的所有数据
- amazon-web-services - Kubernetes pod 级别限制了从 AWS EKS 节点对其他 EC2 实例的访问
- c# - 此 powershell 片段的 C# 等效项
- javascript - HighCharts 使用 YAxis 和时间戳
- node.js - BehaviorSubject 成对看不到 subscribe() 中的正确值
- c++ - 如何比较系统和通用类别中的 std::error_code?
- docker-compose - 赛普拉斯和 Docker - 无法运行,因为未找到规范文件