使用TS 开发vue项目

这篇具有很好参考价值的文章主要介绍了使用TS 开发vue项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境说明

在vue项目中启用ts,有两种方式:

  1. 全新项目:使用vue cli脚手架工具创建vue项目时,勾选 ts(详见上节),会自动完成关于ts项目的配置。开箱即用。
  2. 已有项目:添加vue官方配置的ts适配插件,使用@vue/cli 安装 ts插件:
vue add @vue/typescript

根据命令提示操作,即可自动完成 项目中关于ts的配置

二、ts 相关配置介绍

相关配置是在上一步中自动生成的。这里主要是理解,上一步都自动完成了那些配置。

  1. 安装了ts 相关的依赖项
    【dependencies 依赖】
    1. vue-class-component:提供使用Class 语法写Vue组件
    2. vue-property-decorator:在Class语法基础上提供一些辅助装饰器。增强的class 描述组件的工具
    【devDependencies 依赖】
    1. @typescript-eslint/eslint-plugin: 使用ESlint 校验 Typescript 代码。其实ts有自己的校验工具,tslint,但是不好用,所以大多是使用 eslint+该工具来校验
    2. @vue/cli-plugin-typescript:是vue-cli的一个插件,将ts相关的工具集成起来,将ts+ts-loader+fork-ts-checker-webpack-plugin 集成,进行更快的类型检查,是一个统一的集成调度者。
    3. @vue/eslint-config-typescript:为eslint 提供关于ts的校验规则
    4. typescript:typescript编译器,提供类型校验和转换js功能
  2. 生成ts配置文件 tsconfig.json
    默认已经配置了许多可以开箱即用的功能, 可以根据项目实际需求进行修改
  3. src下新增两个文件
    【shines-vue.d.ts】
    ts中 是没办法识别 以.vue 结尾的模块的(eg:import xx from xx.vue, 该语句ts识别不了),通过该文件做适配处理,使项目中加载.vue 模块的文件时 不报错。一般不修改 该文件意思是:声明所有以 .vue结尾的文件模块,其类型都是vue构造函数
    【shims-tsx.d.ts 】
    如果要在项目中使用tsx 或者jsx 描写组件模块的话,补充了一些类型声明。如果没有这些类型声明,在jsx中使用这些成员的时候,会找不到。如果项目中没有使用jsx,可以将该文件忽略掉
  4. 都是用.ts 后缀 代替 原先的.js 后缀

三、使用ts的方式来定义vue组件(⭐)

原始方式定义组件的缺陷
1. 编辑器给的类型提示,不够严谨正确
2. ts 编译期间的类型验证没有
OptionsApi

<script lang='ts'>
import Vue from 'vue'   // 1.加载vue

export default Vue.extend({   // 2.定义并导出一个组件 vue.extend({})
    // 中间内容与之前写法一样,之前放什么,extend对象中放什么
})
</script>

class APIs
采用clss类的方式来描述组件。如果在声明组件时更喜欢基于类的 API,则可以使用官方维护的 vue-class-component 装饰器:

import Vue from 'vue'
import Component from 'vue-class-component'

// 不要忘记在导出类前 写上@Component 装饰器,@Component 修饰符注明了此类为一个 Vue 组件
@Component({
  // 所有的组件选项都可以放在这里
  template: '<button @click="onClick">Click!</button>'
})
export default class MyComponent extends Vue {
  // 初始数据可以直接声明为实例的 property
  message: string = 'Hello!'

  // 组件方法也可以直接声明为实例的方法
  onClick (): void {
    window.alert(this.message)
  }
}

详细写法见文档:https://class-component.vuejs.org/
Vue-Property-Decorator
使用类的方式来描述组件时,有些写法不是很方便,比如 props,会比普通写法更麻烦。所以社区中 提供了vue-property-decorator,利用装饰器的特点,对classOpis 做了一些简化的写法。主要原理是对classAPIs 做了一些扩展,提供了一些快捷的装饰器,使书写起来更方便。

使用时需要先安装,不过vue项目已经内置安装好了。详细写法见 github地址

因为装饰器语法尚未定案,所以对该种写法了解即可,不用刻意采用

采用建议

No Class APIs,只用 Options APIs,class语法仅仅是一种写法而已,最终还是要转换为普通的组件数据结构,装饰器语法还没有正式定稿发布,建议了解即可。正式发布以后再选择使用也可以。

使用Options Apis最好是使用 export default Vue.extend({ … }) 而不是export default { … }文章来源地址https://www.toymoban.com/news/detail-636555.html

到了这里,关于使用TS 开发vue项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • uniapp+vue3+ts+vite+echarts开发图表类小程序,将echarts导入项目使用的详细步骤,耗时一天终于弄好了

    uniapp+vue3+ts+vite+echarts开发图表类小程序,将echarts导入项目使用的详细步骤,耗时一天终于弄好了

    想在uniapp和vue3环境中使用echarts是一件相当前卫的事情,官方适配的还不是很好,echarts的使用插件写的是有些不太清晰的,这里我花费了一天的时间,终于将这个使用步骤搞清楚了,并且建了一个仓库,大家可以直接clone下来使用。先看一下pc端和小程序端的效果: 微信小程

    2024年02月05日
    浏览(129)
  • TypeScript 中的 .d.ts 文件:加强类型支持,提升开发效率

    1.引言 什么是 .d.ts 文件 当我们使用 TypeScript 开发时,类型声明是非常重要的。它们提供了代码的静态类型检查和智能提示,以增强代码的可读性、可维护性和可靠性。然而,对于已有的 JavaScript 库或自定义模块,它们可能不包含类型声明信息。这就导致在使用这些库或模块

    2024年02月15日
    浏览(13)
  • uniapp 小程序 使用vue3+ts运行项目

    uniapp 小程序 使用vue3+ts运行项目

    uniapp官网教程:uni-app官网 创建方式有2种 第一种:通过HBuilderX可视化界面创建 第二种:通过vue-cli命令行 注意:若不能直接使用命令下载,可去gitee下载模板使用 下载完模板后进行解压,利用vscode打开文件,会发现报这样的错误👇主要原因是没有下载依赖 解决以上错误:使

    2024年02月13日
    浏览(45)
  • typescript项目中import 图片时报错:TS2307: Cannot find module ‘...’

    typescript项目中import 图片时报错:TS2307: Cannot find module ‘...’

    最近在用typescript写项目时,我用import来加载一个图片,webpack编译文件是会报错如下: 报错: 解决: 如果在js中引入本地静态资源图片时使用import img from \\\'./img/bd_logo1.png’这种写法是没有问题的,但是在typscript中是无法识别非代码资源的,所以会报错TS2307: cannot find module ‘

    2024年02月15日
    浏览(11)
  • 【新项目开发】vue3+ts+elementPlus+ffmpegjs开发纯web端的视频编辑器

    当在项目中使用新技术时,我们应该首先进行调研,了解其特点和使用方法。在实现功能时,我们可以采用最简单的方式,而不必过于关注项目的设计和结构。一旦掌握了新技术,我们可以根据其API属性进行代码设计,以便更好地开发。以开发一个纯web端的视频编辑处理器为

    2024年02月15日
    浏览(46)
  • Vite4+Typescript+Vue3+Pinia 从零搭建(2) - ts配置

    项目代码同步至码云 weiz-vue3-template 关于tsconfig的配置字段可查看其他文档,如 typeScript tsconfig配置详解 文件修改如下: 修改文件如下: 新建文件夹 types ,用来存放类型定义。比如新建 index.d.ts : 后续也可以新增其他文件,比如 global.d.ts 存放全局定义, router.d.ts 存放路由定

    2024年02月05日
    浏览(51)
  • 在vue3+ts项目里使用query和params传参

    在vue3+ts项目里使用query和params传参

    一 query 传参 (类似get请求) query 传参方式① 传递方组件 home.vue 看下 router/index.ts 文件 有两个注意点 ① ref定义响应式基本类型数据后,修改和赋值要带上 .value ② query是一个对象类型 所以我们定义的基本类型数据不能直接赋值 要给对象式写法 {} 像以下两种写法都是报错的

    2024年01月17日
    浏览(10)
  • vue3+Ts 开发H5项目在线浏览pdf/word/pptx/xlsx文件方法分享

    pdf需要pdfh5这个插件才可以在线浏览,所以我们先下载插件; pdfh5官方地址 注意 “pdfh5”: “^1.4.7” 有问题会出现插件不能完全加载出现504错误 请切换版本下载 “pdfh5”: \\\"^1.4.2\\\"版本 其实很简单 就只用处理一下pdf类型的文件就可以了 其他文件 office 有一个自带的线上网站可以拼

    2024年02月16日
    浏览(36)
  • TypeScript配置-- 2. 了解ts配置项,根据vite项目了解typescript配置文件,tsconfig.json、tsconfig.node.json、

    TypeScript配置-- 2. 了解ts配置项,根据vite项目了解typescript配置文件,tsconfig.json、tsconfig.node.json、

    仅对于Ts项目来说,产生红色波浪线,主要是由于语法错误,当然也有其他情况… 这边先引入一个greeter.ts文件 发现居然没有跟一些项目一样,有红色的波浪线,不是说了函数里面的参数是需要显示追加类型的吗。 tsconfig.json 不知道有什么配置项?鼠标悬浮试试~~ 具体可以看

    2024年02月03日
    浏览(34)
  • vite+vue3+ts搭建项目八(打包性能优化三:使用CDN)

    vite+vue3+ts搭建项目八(打包性能优化三:使用CDN)

    使用vite-plugin-cdn-import 下载npm包 官方github:https://github.com/MMF-FE/vite-plugin-cdn-import 开发环境使用本地的npm包,cdn是打包时候才生效 在vite.config.ts中通过importToCDN引入 注意事项 :网上很多教程,还需要在 build 的 rollupOptions 添加对应的 external ,如上注释所示,其实是不需要的,

    2024年02月02日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包