vue选项式API和组合式API区别-备忘

本文详细比较了Vue.js的选项式API和组合式API,包括它们的结构、模块化与复用性、响应式机制、代码组织、作用域和生命周期管理。选项式API传统但分散,组合式API则灵活且集中,适合大型应用.
摘要由CSDN通过智能技术生成

Vue.js 的选项式API和组合式API是两种不同的编写Vue组件的方式,它们各自有不同的特点和适用场景:

选项式API (Options API)

这是 Vue.js 最初的API设计方式,也是最为广泛使用的编程模型。在选项式API中,一个Vue组件由一系列可选的选项组成,如 datapropsmethodscomputedwatch 等。这些选项在组件的定义对象中以属性的形式列出。

例如:

export default {
  props: {
    message: String
  },
  data() {
    return {
      localMessage: 'Hello from component'
    }
  },
  computed: {
    combinedMessage() {
      return this.message + ' ' + this.localMessage;
    }
  },
  methods: {
    greet() {
      console.log(this.combinedMessage);
    }
  },
  mounted() {
    this.greet();
  }
}

组合式API (Composition API)

Vue 3 引入的新编程模式,它允许开发者以更加灵活和可复用的方式组织组件的逻辑。组合式API的核心是 setup 函数,该函数接收两个参数 propscontext,并在函数内部通过 refreactivecomputedwatch 等函数来声明和管理组件的状态和行为。

例如:

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

export default {
  props: {
    message: String
  },
  setup(props) {
    const localMessage = ref('Hello from component');

    const combinedMessage = computed(() => {
      return props.message + ' ' + localMessage.value;
    });

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

    onMounted(greet);

    return {
      localMessage,
      greet
    };
  }
}

区别:

  • 模块性与复用性:组合式API通过函数式的编程方式使得逻辑片段更容易提取和复用,特别是在大型应用中。

  • 代码组织:在选项式API中,状态和方法分布在不同的选项中,而组合式API将所有逻辑集中在一个 setup 函数中,可以根据逻辑相关性自由组织代码。

  • 响应式API:组合式API提供了更精细的响应式控制,如 refreactive,可以直接在JavaScript表达式中使用 .value 来访问响应式变量的值。

  • 作用域:在组合式API中,可以直接在 setup 函数中访问 propscontext,而不需要 this 关键字。

  • 生命周期钩子:组合式API使用 onMountedonUpdatedonBeforeUnmount 等新的生命周期钩子函数替代原有的 mountedupdatedbeforeDestroy 等选项。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值