Vue 中 computed
、mounted
和 methods
的基本理解。
computed
- 计算属性 (
computed
):主要用于根据现有的响应式数据(即data
中的数据或其他computed
属性)进行计算并返回一个新的值。计算属性是基于它们的响应式依赖进行缓存的。只有当依赖发生变化时,计算属性才会重新计算。这使得计算属性非常适合执行可能需要重复执行且依赖数据可能变化的计算。 - 使用场景:当你需要对现有数据进行处理或组合,并且这个处理或组合的结果需要在多处使用时,使用计算属性是最合适的。
mounted
- 生命周期钩子 (
mounted
):mounted
是 Vue 组件的一个生命周期钩子,当组件被挂载到 DOM 上后会被调用。这个钩子在组件实例化之后执行,因此可以访问到组件的实例,包括data
、computed
、methods
等。 - 使用场景:
mounted
通常用于执行那些需要在 DOM 渲染完成后才能进行的操作,例如获取外部数据(通过 AJAX 请求等)、操作 DOM 元素、设置事件监听器等。
methods
- 方法 (
methods
):methods
中定义的函数可以通过组件实例直接调用。它们不会像计算属性那样缓存,每次调用时都会执行。 - 使用场景:当你需要在组件中执行操作,如响应事件(点击事件、表单提交等)、执行非纯函数(即每次调用都可能产生不同结果的函数)时,应该使用
methods
。methods
也适用于那些不需要返回值的操作,或者那些需要主动触发而不是基于数据变化自动更新的操作。
总结
- computed:用于根据现有数据自动计算新数据,具有缓存特性。
- mounted:用于执行组件挂载后的初始化操作,如请求数据。
- methods:用于定义组件中可以被调用的方法,适用于事件处理和那些需要主动触发的操作。