在 Vue 框架中,computed 属性与 methods 方法在功能和使用场景上有哪些不同?请从缓存机制、依赖追踪、调用方式及适用场景等方面阐述。
考察说明
考察对 Vue 中 computed 和 methods 核心特性及各自适用场景的理解。
回答思路
- 【回答框架 1】computed 是计算属性,基于响应式依赖进行缓存,只有依赖变化时才重新计算;methods 是方法,每次调用都会执行,不会缓存结果。
- 【回答框架 2】computed 在模板中作为属性使用,无需加括号;methods 必须作为函数调用,加括号。computed 无法接收参数,methods 可以。
- 【回答框架 3】computed 适合根据现有数据派生新值,且期望多次访问时性能优化;methods 适合事件处理或需要参数的操作。
- 【回答框架 4】computed 内部如果有异步操作或产生副作用,不推荐使用,因为其设计初衷是纯计算。methods 则没有此限制。
- 【关键点 1】computed 有缓存,methods 无缓存。
- 【关键点 2】computed 依赖响应式数据自动追踪,methods 不追踪。
- 【关键点 3】computed 使用属性方式访问,methods 需调用。
- 【关键点 4】computed 适合数据派生,methods 适合事件或带参操作。
- 【易错点 1】在 methods 中大量使用复杂计算且多次调用,没有缓存会导致性能问题。
- 【易错点 2】在 computed 中执行异步或副作用操作,可能引起难以预期的行为。
- 【易错点 3】computed 不能接收参数,若需参数仍使用 methods。