TypeScript 的 Vue.js 项目差异

本文探讨了在 TypeScript 环境下,如何使用 Vue.js 的 Options APIs、Class APIs 及其结合方式进行组件定义。介绍了安装 @vue/cli-plugin-typescript 后的项目差异,如 shims-vue.d.ts 和 shims-tsx.d.ts 的作用,并对比了使用 Class APIs 的优缺点,特别是装饰器的使用。作者推荐的最佳实践是使用 Options APIs,避免 Class APIs。
摘要由CSDN通过智能技术生成

1)基本操作

  1. 安装 @vue/cli 最新版本
  2. 使用 @vue/cli 创建一个项目(不选 TypeScript)
  3. 使用 @vue/cli 安装 TypeScript 插件

2)通过 Git Diff 对比介绍使用 TypeScript 的 Vue.js 项目差异

  1. 安装了 @vue/cli-plugin-typescript 等插件
  2. shims-vue.d.ts 文件的作用
  3. shims-tsx.d.ts 文件的作用

定义 Vue 组件的几种不同方式

写法 1:使用 Options APIs

  • 组件仍然可以使用以前的方式定义(导出组件选项对象,或者使用 Vue.extend())
  • 但是当我们导出的是一个普通的对象,此时 TypeScript 无法推断出对应的类型,
  • 至于 VSCode 可以推断出类型成员的原因是因为我们使用了 Vue 插件,
  • 这个插件明确知道我们这里导出的是一个 Vue 对象。
  • 所以我们必须使用 Vue.extend() 方法确保 TypeScript 能够有正常的类型推断
import Vue from 'vue'

export default Vue.extend({
   
  name: 'Button',
  data () {
   
    return {
   
      count: 1
    }
  },
  methods: {
   
    increment () {
   
      this.count++
    }
  }
})

写法 2:使用 Class APIs

在 TypeScript 下,Vue 的组件可以使用一个继承自 Vue 类型的子类表示,这种类型需要使用 Component 装饰器去修饰

装饰器函数接收的参数就是以前的组件选项对象(data、props、methods 之类)

import Vue from 'vue'
import Component from 'vue-class-component'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值