首页 > 其他分享 >VUE中选项式API和组合式API讲解。

VUE中选项式API和组合式API讲解。

时间:2023-11-21 13:34:14浏览次数:34  
标签:组合式 选项 VUE Vue API 组件 message

Vue.js 提供了两种主要的 API 风格:选项式 API(Options API)和组合式 API(Composition API)。这两种 API 风格可以用来编写 Vue 组件,但它们在组织代码、复用逻辑和组件结构等方面有不同的方式。

选项式 API 是 Vue.js 最早引入的 API 风格,它使用对象形式来定义组件的选项。在选项式 API 中,一个 Vue 组件被定义为一个包含各种选项的对象。这些选项包括 datamethodscomputedwatchmounted 等等。通过在组件的选项中定义这些属性和方法,可以描述组件的行为和状态。

以下是一个使用选项式 API 定义的 Vue 组件的示例:

Vue.component('my-component', {
  data() {
    return {
      message: 'Hello, Vue!'
    };
  },
  methods: {
    greet() {
      console.log(this.message);
    }
  },
  mounted() {
    this.greet();
  }
});

在上面的例子中,我们使用 data 选项定义了组件的数据属性 message,使用 methods 选项定义了组件的方法 greet,使用 mounted 选项定义了组件的生命周期钩子函数 mounted。这些选项在组件的实例化和渲染过程中起到了关键作用。

组合式 API 是 Vue.js 2.6 版本引入的新特性,它提供了一种更灵活和可组合的方式来编写组件逻辑。组合式 API 将组件的逻辑划分为逻辑相关的功能块,每个功能块可以独立编写、测试和复用。

在组合式 API 中,我们使用一组函数来组织组件的逻辑。这些函数包括 setuprefreactivecomputedwatch 等等。通过使用这些函数,我们可以定义组件的状态、计算属性、观察者等。

以下是一个使用组合式 API 定义的 Vue 组件的示例:

import { ref, computed, watchEffect } from 'vue';

export default {
  setup() {
    const message = ref('Hello, Vue!');

    function greet() {
      console.log(message.value);
    }

    watchEffect(() => {
      greet();
    });

    return {
      message,
      greet
    };
  }
};

在上面的例子中,我们使用 ref 函数定义了一个响应式的数据属性 message,使用 watchEffect 函数监听 message 的变化,并在变化时调用 greet 方法。通过 setup 函数,我们将组件的状态和方法暴露给模板使用。

组合式 API 提供了更灵活和可组合的方式来组织组件的逻辑,可以更好地实现代码的复用和组件的拆分。它还提供了更好的 TypeScript 支持和更好的 IDE 提示。

需要注意的是,选项式 API 和组合式 API 并不互斥,你可以根据项目的需求和个人的喜好选择使用哪种 API 风格。在 Vue 3 中,组合式 API 成为了推荐的方式,但选项式 API 仍然可以使用,并且在一些简单的场景中仍然非常有效和方便。

标签:组合式,选项,VUE,Vue,API,组件,message
From: https://www.cnblogs.com/laraveler/p/17846390.html

相关文章

  • vue面试题_vue2和vue3的区别
    1、数据绑定原理不同vue2:vue2的数据绑定是利用ES5的一个API:Object.definePropert()对数据进行劫持,结合发布订阅模式的方式来实现的。vue3:vue3中使用了ES6的ProxyAPI对数据代理。相比vue2.x,使用proxy的优势如下:defineProperty只能监听某个属性,不能对全对象监听可以省去fori......
  • Vue 项目每次发版后要清理浏览器缓存 问题
    configureWebpack:{//providetheapp'stitleinwebpack'snamefield,sothat//itcanbeaccessedinindex.htmltoinjectthecorrecttitle.name:name,resolve:{alias:{'@':resolve('src'......
  • Gartner 魔力象限:全生命周期 API 管理 2023 (Gartner Magic Quadrant for Full Life C
    Gartner魔力象限:全生命周期API管理2023GartnerMagicQuadrantforFullLifeCycleAPIManagement2023请访问原文链接:https://sysin.org/blog/gartner-magic-quadrant-api-management-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgMagicQuadrantfor......
  • vue3 ts 父子 组件小例子
    <project-tabref="projectTabRef"v-model="form.projectVO":data="parentToChild"@update="updateHandler"></project-tab>//引用组件constProjectTab=defineAsyncComponent(()=>import('./tabsProject.......
  • ant design vue 1.x 和 3.x 自定义表单示例
    以下是项目中用到的自定义表单的写法,vue2vue3各记录一个。1.x(Forvue2)自定义表单的示例实现如下图的控件代码如下:import{Component,Prop,Vue,Watch}from'vue-property-decorator'import{Moment}from'moment'typeValue={left:Moment;right:Moment......
  • API测试:了解API接口测试与API接口测试指南
    一、API测试的基础概念API(应用程序编程接口)是不同软件应用程序之间的通信桥梁。API接口测试则是确保这些接口正常工作、确保数据传输的准确性和安全性的过程。为什么API测试如此重要?确保数据完整性:API在传输数据时必须保证数据的完整,避免数据丢失或损坏。提高安全性:通过API传输的......
  • Android studio使用javadoc生成 api 说明文档
    文章目录1、工具下载2、实用工具添加注释3、使用该工具生成api文档4、查看生成的api文档5、帮助1、工具下载2、实用工具添加注释官方wikiTogeneratejavadocsforactiveelementpress“shift+alt+G”.Togeneratejavadocsforallelementsincurrentjavafilepre......
  • 天通_分销_S系列_S3_API文档
     API使用:l API需要参数API入口:http://s3api.demo.ttgrasp.com.cn/FxApi/ApiGateway.Gspx 参数名称说明AppId应用程序ID,现在默认传输:A001AppSecret应用程序Key,现在默认传输:94626B9C-4B74-49F3-98CF-952475E3F027VersionERP程序版本,1.2......
  • vue实现会议室拖拽布局排座
    会议室拖拽布局排座是vue-draggable结合vue-draggable-resizable-gorkys进行开发vue-draggable是拖拽组件,可以在组件里拖动排序,也可以多个组件之间拖动排序vue-draggable-resizable-gorkys是一更强大的拖拽组件,可以随意拖拽,有点坐标先进行会议室的布局然后对某个会议进行人......
  • 解放VSCode+Vue的完整组件库智能提示(包括ant-design-vue、element-plus等)
    解放VSCode+Vue的完整组件库智能提示最近因为一些原因从WebStrom转回VSCode,首先感受到的就是组件库没有智能提示了:这能忍吗?根本不可能!接下来,我带你花三分钟找回遗失的智能提示~首先,本篇文章适用于通过unplugin-vue-components自动引入组件的项目;也就是说,在你的vite.config.js......