_
2024/4/3 00:14:00541

选项式API和组合式API

组合式API

从这节课开始我们主要来学习VUE3的组合式API,之前我们学习使用的都是选项式API。

从VUE3版本开始,Vue 的组件可以按两种不同的风格书写:选项式 API 和 组合式 API

什么选项式API

选项API是Vue 2中的主要API风格,它通过定义一个包含各种选项的对象来创建组件。这些选项包括datamethodscomputed等,使得组件的结构相对清晰,适用于小到中型的项目。选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例。

<template>
  <button @click="increment">Count is: {{ count }}</button>
</template>

<script>
export default {
  // data() 返回的属性将会成为响应式的状态
  // 并且暴露在 `this` 上
  data() {
    return {
      count: 0
    }
  },

  // methods 是一些用来更改状态与触发更新的函数
  // 它们可以在模板中作为事件处理器绑定
  methods: {
    increment() {
      this.count++
    }
  },

  // 生命周期钩子会在组件生命周期的各个不同阶段被调用
  // 例如这个函数就会在组件挂载完成后被调用
  mounted() {
    console.log(`The initial count is ${this.count}.`)
  }
}
</script>

什么是组合式API

Vue 3引入了组合式API,使得代码更可复用、可组合,并且更容易测试。相比于选项API,组合式API更加灵活,通过setup函数来配置组件。

<template>
  <button @click="increment">Count is: {{ count }}</button>
</template>

<script>
import { ref, onMounted} from 'vue'
export default {
  // `setup` 是一个特殊的钩子,专门用于组合式 API。
  setup(){
    // 响应式状态
    const count = ref(0)

    // 用来修改状态、触发更新的函数
    function increment() {
      count.value++
    }

    // 生命周期钩子
    onMounted(() => {
      console.log(`The initial count is ${count.value}.`)
    })
    return{
      count,
      increment
    }
  }

}
</script>

区别与优势

  • 可读性和结构:

    • 选项API更适合简单的组件结构,易于阅读和理解。
    • 组合式API通过setup函数提供更灵活的结构,使得大型组件更加清晰。
  • 复用性和组合性:

    • 组合式API使得逻辑可以更容易地被提取和复用,促使组件之间更好地进行组合。
  • 类型推断和编辑器支持:

    • 组合式API通过Typescript更好地支持类型推断,提高了编辑器的支持度。

如何选择?

  • 对于小型项目和简单组件,选项API可能更为合适。
  • 对于大型项目或需要更多组件复用的场景,组合式API是更好的选择。
  • 其实两者没有太大的区别,用那种都能完成组件的开发,但是组合式api是vue3种的新特性,居然学习了我们就得多用,熟能生巧,所以推荐在vue3项目中 多用组合式api,vue2项目中那是没办法只能用选项式API。
视频讲解