使用computed需要遵循和避免的几点原则
遵循的原则
-
简单明了
computed不应该过于复杂或过长,而应该是简单清晰的。它应该只负责对单个变量或getter进行处理,并且最终返回一个通常与vue模板直接关联的值。 -
可重复利用
由于computed的特殊设计方式,它们可以被许多其他computed、watch甚至方法调用,因此在设计时要尽可能保证其可重复利用性,使其更方便地在各种情况下使用,而不会产生重复代码。 -
对响应式数据进行计算
computed属性与Vue的响应式变量(data、props等)紧密相关,所以它应该是计算基于响应式数据的并及时更新的结果。这也是computed相比methods的一大优势。
应该避免的原则
-
进行异步操作
computed不适用于异步操作。如果计算代码需要通过网络请求获取远程数据,那么应该采用watch、promise等其他选项。 -
使用副作用
在computed方法中应该避免对外部数据进行更改,使得方法可以更安全、稳定的运行和其他组件和函数协同工作。 -
处理重逻辑
大量处理复杂计算逻辑的代码不应该放在computed中。这些代码可能存在性能问题,并且会影响到组件的渲染表现,因此应该把这些逻辑移到methods中。