Vue3 Data Property 和方法
Data Property
组件的 data
选项是一个函数。它应该返回一个对象,然后 Vue 会通过响应性系统将其包裹起来,并以 $data
的形式存储在组件实例中。该对象的任何顶级 property 也会直接通过组件实例暴露出来:
1 | const app = Vue.createApp({ |
这些实例 property 仅在实例首次创建时被添加,所以你需要确保它们都在 data
函数返回的对象中。
Vue 使用 $
前缀通过组件实例暴露自己的内置 API。它还为内部 property 保留 _
前缀。你应该避免使用这两个字符开头的顶级 data
property 名称。
方法
我们用 methods
选项向组件实例添加方法,它应该是一个包含所需方法的对象:
1 | const app = Vue.createApp({ |
Vue 自动为 methods
绑定 this
,以便于它始终指向组件实例。
在定义 methods
时应避免使用箭头函数,因为这会阻止 Vue 绑定恰当的 this
指向。
可以在模板支持 JavaScript 表达式的任何地方调用方法:
1 | <span :title="toTitleDate(date)"> |
如果 toTitleDate
或 formatDate
访问了任何响应式数据,则将其作为渲染依赖项进行跟踪,就像直接在模板中使用过一样。
防抖和节流
Vue 没有内置支持防抖和节流,但可以使用 Lodash 等库来实现。
1 | <script src="https://unpkg.com/lodash@4.17.20/lodash.min.js"></script> |
为了使组件实例彼此独立,可以在生命周期钩子的 created
里添加该防抖函数:
1 | app.component('save-button', { |