首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >别再写this.xxx了

别再写this.xxx了

作者头像
程序员NEO
发布2026-04-29 19:26:31
发布2026-04-29 19:26:31
1130
举报

你还在写一堆 this.xxx,还在用老套的 Vue 写法吗?

今天聊聊 Vue3 的两种写法:选项式 API组合式 API

简单说,就是"传统写法"和"现代写法"的区别。

传统写法就像是把所有东西都塞进不同的抽屉里(data放一个抽屉,methods放另一个抽屉),而现代写法就像是把相关的东西都放在一起,用的时候一目了然。

为什么推荐组合式 API? 因为它让代码更自由、更高效,特别是在处理复杂逻辑时,简直是开发者的福音!

  • • 组合式 API 官方文档:https://cn.vuejs.org/guide/introduction#composition-api
  • • 选项式 API 官方文档:https://cn.vuejs.org/guide/introduction#options-api

老式写法:选项式 API

说到选项式 API,就像是给代码分门别类装进不同的盒子里。数据放 data 盒子,方法放 methods 盒子,生命周期放 mounted 盒子。

这种写法的特点就是一个字:规矩!每样东西都有固定的位置,初学者一看就懂。

但问题来了:当你的组件越来越复杂时,你得在各个盒子之间跳来跳去找东西,就像在房间里找遥控器一样头疼。

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

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

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

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

新式写法:组合式 API

如果说选项式 API 是把东西分类放在不同抽屉里,那组合式 API 就像是把相关的东西都放在一个整理箱里,用的时候一把抓就行了。

最爽的是 <script setup> 语法糖,就像是给你的代码加了个智能管家。你只管写代码,它自动帮你处理各种繁琐的事情。

举个栗子:以前你要手动告诉Vue"这个变量给模板用",现在它自动就知道了!是不是很贴心?

代码语言:javascript
复制
<script setup>
import { ref, onMounted } from 'vue'

// 响应式状态
const count = ref(0)

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

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

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

该选哪一个?你的选择决定了你的段位

两种 API 风格都能够覆盖大部分的应用场景。它们只是同一个底层系统所提供的两套不同的接口。实际上,选项式 API 是在组合式 API 的基础上实现的!关于 Vue 的基础概念和知识在它们之间都是通用的。

**选项式 API:适合新手的"训练轮"**选项式 API 以 "组件实例" 的概念为中心(即上述例子中的 this),对于有面向对象语言背景的朋友来说,这就像回到了熟悉的老家。

它把响应性相关的复杂细节都藏起来,并强制按照固定套路来组织代码,对初学者来说就像有了一个贴心的导师,告诉你什么东西该放哪里。

组合式 API:高手的"自由式发挥" 组合式 API 的核心思想是直接在函数作用域内定义响应式状态变量,并将多个函数中得到的状态组合起来处理复杂问题。

这种写法更加自由,就像从"按部就班"升级到了"随心所欲"。但相应的,你需要对 Vue 的响应式系统有更深的理解才能玩得转。

这种灵活性也使得组织和重用逻辑变得更加强大,就像从"拼装模型"升级到了"乐高积木"。

官方推荐指南:

如果你是Vue新手:

  • • 学习阶段推荐选择更容易理解的风格,两种风格的核心概念都是通用的。掌握一种后,另一种也能很快上手。

生产项目中:

  • • 如果不需要构建工具,或者主要在简单场景中使用 Vue(比如给传统网站加点交互效果),推荐选项式 API
  • • 如果要构建完整的单页应用,强烈推荐组合式 API + 单文件组件

小贴士: 想了解更多两种API的深度对比?可以查看 组合式 API FAQ[1]

写在最后:选择比努力更重要

技术在变,工具在变,但追求更好开发体验的心永远不变。

从选项式API到组合式API,这不仅仅是写法的改变,更是思维方式的升级。就像从诺基亚换到智能手机,虽然都能打电话,但体验完全不同。

那么问题来了:你现在还在用选项式API吗?或者已经拥抱组合式API了?

引用链接

[1] 组合式 API FAQ: https://cn.vuejs.org/guide/extras/composition-api-faq.html

如果这篇文章帮到了你,不妨点个分享给同样需要的朋友吧! 你的每一次支持,都是我持续创作的动力!💪

往期推荐:

序号

文章标题

链接

1

MCP协议爆火揭秘

查看详情

2

轻松配置Cursor玩转MCP

查看详情

3

Browser-Tool 前端开发神器

查看详情

4

AI编码焕新:用Context7

查看详情

5

NotebookLM:靠谱知识库

查看详情

6

Spring AI 玩转多轮对话

查看详情

7

Cursor生成UI,加一步封神

查看详情

8

神器!免费替代Postman

查看详情

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员NEO 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 老式写法:选项式 API
  • 新式写法:组合式 API
  • 该选哪一个?你的选择决定了你的段位
  • 写在最后:选择比努力更重要
    • 引用链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档