javascript - 指定一个我可能不会在 Vue.js 的动态组件中使用的值会降低性能吗?
问题描述
在我的应用程序中,我有 10 个组件,所有这些组件都需要一个名为andamento
;的属性。但只有一个子集需要一个名为custas
.
如果我custas
为(下)中的所有组件andamentosOrdenado
设置属性,与仅为子集设置属性相比,我会失去性能吗?
这是我的代码:
<v-timeline-item class="mb-3" small v-for="andamento in andamentosOrdenado" :key="andamento.nome">
<component v-bind:is="andamento.form" :andamento="andamento" :custas="notificacao.custas"></component>
</v-timeline-item>
解决方案
如果 的值为custas
静态/常量:
不,因为你不能因为不使用常量值/变量而“失去”性能,这是因为属性已经定义并且它的值已经被评估(一个不需要再次发生的过程)。
如果 的值custas
不是静态/常量:
那么是的,因为您正在使机器浪费资源来评估您很可能不会使用的非静态值。更不用说这个值可能会改变,这意味着它的值将被重新评估(无缘无故)。
此问题的另一种解决方案是使用if
语句custas
有条件地定义属性,例如:
// pseudo code:
if (i_need_custas) {
my_object.custas = fn_that_returns_value_that_might_change();
}
然后,您需要在哪里使用custas
:
// pseudo code:
if (my_object.hasOwnProperty("custas")) {
// do stuff with custas
}
祝你好运。
推荐阅读
- request - 一个请求参数可以在一个url中取多个值吗?
- mongodb - 带有构面的MongoDB聚合计数太慢了
- javascript - 使用 Angular7 直接下载“文件”
- css - 制表符过滤器 - 如何添加特定的 CSS 元素
- r - R基于列和列表合并两个数据帧
- java - 寻找大 O 复杂度。三种算法
- javascript - 如何使用 ng2-file-upload 以角度上传 .ply 文件
- python - Python 中的类型注释是否强制执行静态类型检查?
- php - PHP发生错误时如何获取所有变量
- c# - 如何使用来自 MVC5 (asp.net) 的依赖注入的 netstandard 2.0 库