阅读 80

Data Property和方法

1.Data Property

组件得data选项是一个函数。Vue在创建新组件实例得过程中调用此函数。它应该返回一个对象,然后Vue会通过响应性系统将其包裹,并以$data得形式存储在组件实例中。为方便起见,该对象得任何顶级property也直接通过组件实例暴露出来。

  • 实例property仅在实例首次创建时被添加,所以需要确保它们都在data函数返回的对象中

  • 必要时,要对尚未提供所需值得property使用null、undefined或其他占位得值

  • 直接将不包含在data中的新property添加到组件实例是可行的,但由于该property不在背后的响应式$data对象内,所以Vue的响应性系统不会自动跟踪它

  • Vue使用$前缀通过组件实例暴露自己的内置API,它还为内部property保留_前缀,应避免使用这两个字符开头的顶级data property名称

2.方法

我们用methods选项向组件实例添加方法,它应该是一个包含所需方法的对象。

  • Vue自动为methods绑定this,以便于它始终指向组件实例,这将确保方法在用作事件监听或回调时保持正确的this指向,在定义methods时应避免使用箭头函数,因为这会阻止Vue绑定恰当的this指向

  • methods和组件实例的其他所有property一样可以在组件的模板中被访问,在模板中,它们通常被当作事件监听使用

  • 也可以直接从模板中调用方法,通常换做‘计算属性’会更好,但是,在计算属性不可行的情况下,使用‘方法’可能会很有用

  • 从模板调用的方法不应该有任何副作用,比如更改数据或触发异步进程,如果想有其他作用,应该换做生命周期钩子

3.防抖和节流

Vue没有内置支持防抖和节流,但可以使用Lodash等库来实现。

  • 如果某个组件仅使用一次,可以在methods中直接应用防抖,但是这种方法对于可复用组件有潜在的问题,因为它们都共享相同的防抖函数,为了使组件实例彼此独立,可以在生命周期钩子的created里添加防抖函数


作者:认真专注自信自律
链接:https://juejin.cn/post/7022303044918312967

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐