Vue3组合式 API (Composition API)

143 阅读2分钟

前言

以下文章是我个人学习的输出方式,目的是为了夯实自己的技术基础。

【Options API 与 Composition API】

  • Vue2中主要使用的是选项式 API (Options API)的风格;
  • Vue3中,继续支持Vue2选项式 API的同时,引入了组合式 API (Composition API)的风格;

Options API 的弊端

Options API将数据、方法、计算属性......分散在:datamethodscomputed中的,若想新增或者修改一个需求,就需要分别修改:datamethodscomputed,不便于维护和复用。可参考如下动图:

1696662197101-55d2b251-f6e5-47f4-b3f1-d8531bbf9279.gif

1696662200734-1bad8249-d7a2-423e-a3c3-ab4c110628be.gif

Composition API 的优势

Composition API可以用函数的方式,更加优雅的组织代码,让相关功能的代码更加有序的组织在一起,使代码更易于维护和复用。可参考如下动图:

1696662249851-db6403a1-acb5-481a-88e0-e1e34d2ef53a.gif

1696662256560-7239b9f9-a770-43c1-9386-6cc12ef1e9c0.gif

说明:以上四张动图原创作者:大帅老猿

【拉开序幕的 setup】

setup 概述

setupVue3中一个新的配置项,值是一个函数,组件中所用到的:数据、方法、计算属性、监视......等等,均可配置在setup中。

特点如下:

  • setup函数返回的对象中的内容,可直接在模板中使用;
  • setup中访问thisundefined
  • setup函数会在beforeCreate之前调用,它是“领先”所有钩子执行的;

setup 的返回值

  • 若返回一个对象:则对象中的属性、方法等,在模板中均可以直接使用;
  • 若返回一个函数:则可以自定义渲染内容,代码如下:
setup(){
  return ()=> '你好啊!'
}

setup 与 Options API 的关系

  • Vue2 的配置(datamethos......)中可以访问到 setup中的属性、方法;
  • 但在setup中不能访问到Vue2的配置(datamethos......);
  • 如果与Vue2冲突,则setup优先;