vue.js - 特定子级更新会触发所有子级的父方法
问题描述
我正在 vue.js 中制作一个应用程序,对用户提供的 Excel 文档进行一些繁重的计算。我需要根据用户提供的一些过滤器检查客户端的有效性。我现在遇到的问题是,由于某种原因,当子组件更新时,父方法calculateModel(modele)
在不应该被调用时被调用。由于繁重的计算,这会冻结 UI,并且是不必要的。这主要是由于这些组件的数据绑定到该方法。因此,当孩子更新时,它会为每个孩子回忆方法
我试图用计算属性来做到这一点,但它似乎也不起作用。我的第一个猜测是将数据绑定到一个变量,但问题是这些变量应该动态创建,因为每个文件都有不同数量的车辆和模型
这是我父母的计算模型方法
calculateModel(modele) {
console.log('in calculateModel'); // called 20 time on children update when it shoudn't
let dataModele = [];
let distance = [];
let colonneModele = this.documentHeader['12'];
for (let i = 0; i < this.grid.data.length; i++) {
if (this.grid.data[i][colonneModele] === modele) {
dataModele.push(this.grid.data[i]);
distance.push(this.distance[i])
}
}
return [dataModele, distance];
}
这是创建问题的父组件的模板
<div v-for="modele in valueModele" class="row mt-4 w-100 fmt-card">
<option-personnalise-form v-if="checkifInFilter(modele)"
@calculatedRP="onCalculatedRP"
:options-modele="optionsModele" :year="optionYear"
:title="modele.name" :data="calculateModel(modele.name)"
:filter-marque="valueMarque" :documentHeader="documentHeader"
:allDistance="distance"
:filter-modele="valueModele">
</option-personnalise-form>
</div>
这里应用程序应该如何工作。父组件读取文档。在它根据汽车模型将数据分派给每个子组件之后。因此,如果我们有 3 个 Civic 和 5 Accord,它只会将 civic 数据提供给一个孩子,而将 Accord 数据提供给另一个孩子。当 Accord Children 更新时。这些孩子的数据应该是静态的
解决方案
推荐阅读
- ios - 反应原生:未找到活动的 iOS 设备
- architecture - 添加实体和列数据库的新属性会破坏 OCP(开放封闭原则)吗?
- mysql - 在与 ActiveRecord 的多对多关系上使用具有顺序的 distinct 方法
- firebase - 用于检查特定字段的 Firebase 规则
- r - 根据单元格中的特定开始拆分数据集
- django - Django中的同义多对多模型关系
- php - 如何将日期名称转换为当月的日期?
- angular - “Renderer2”类型上不存在属性“projectNodes”
- android - Android KeyEvent.getCharacters() 或 keyEvent.characters 已弃用
- java - 如何从用 Java 编写的 Azure Function App 连接到 PostgreSQL?