VueAndTypeScript

作者:高天阳

邮箱:13683265113@163.com

更改历史

* 2019-07-24        高天阳    初始化文档

Vue项目中应用Typescript

Vue CLI在2.5版本之后内置了TypeScript的支持,并且@vue/cli3提供了TypeScript插件,因此搭建支持TypeScript的vue工程非常方便

创建工程

npm install -g @vue/cli

node环境要求在8及以上 window系统不支持通过命令行 需要下载安装包进行升级

vue create project-name

添加Typescript 插件

为工程添加TypeScript插件,进入工程目录

vue add typescript
// 执行该指令后 会在项目目录中修改、或添加ts文件

添加成功后,我们来看下工程结构,插件已将.js文件修改成了.ts

注意:typescript 不适合在已有项目上运行,因为其特殊的语法

vue-cli-plugin-typescript插件除了添加了typescript相关依赖之外,我们需要关注下vue-class-component和vue-property-decorator, 这两者是VUE的装饰器,vue-property-decorator依赖vue-class-component,class-style模式下开发时可使代码更加简明、可读, 接下来我们会举例介绍怎样更高效、优雅的书写Vue代码

使用Ts开发Vue

完整的Vue页面代码

注意:scrpit中需要指明lang=ts,否则编辑器将不能识别语言类型而报错。

声明响应式属性 data

这样的写法等同于之前的

计算属性

这样的写法等于之前的:

添加vue-router

执行 npm i vue-router 命令添加VueRoter,src下创建router目录、router下创建index.ts文件:

main.ts中加入路由:

3.2 创建User.vue

src目录下创建views目录,views下创建User.vue:

上述写法等价于

3.3 components、props、watch和计算属性

src/components下创建HelloWorld.vue:

@Prop修饰器声明class属性为vue组件的prop;@Watch声明函数为vue的观察器;函数前添加关键字get,表明该函数为vue的计算属性。以上代码等价于

真是没有对比就没有伤害呀,不管是从语义还是代码量来讲,基于TS的声名式开发值得入坑(ps:这种声明式的语法与Java中的AT标签很相似)。

修改User.vue,使用HelloWorld组件:

@Component修饰器中的components参数声明了当前组件引入的外部组件。

参考资料

Last updated

Was this helpful?