VueAndTypeScript
作者:高天阳
邮箱:13683265113@163.com
更改历史
* 2019-07-24 高天阳 初始化文档Vue项目中应用Typescript
Vue CLI在2.5版本之后内置了TypeScript的支持,并且@vue/cli3提供了TypeScript插件,因此搭建支持TypeScript的vue工程非常方便
创建工程
npm install -g @vue/clinode环境要求在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?