vue使用typescript有什么好处,vue+typescript
与如何在反应项目中应用以打字打的文件类类似在VUE项目中应用打字稿,我们需要引入一个库vue-属性-装饰,需要的小伙伴可续看下文具体介绍
目录
一、前言二、使用1.@组件2。计算、数据、方法3 .@props4 .@watch5 .@emit三、总结
一、前言
以打字打的文件是基于某视频剪辑软件类组件库而来,这个库某视频剪辑软件官方推出的一个支持使用班级方式来开发某视频剪辑软件单文件组件的库
主要的功能如下:
方法可以直接声明为类的成员方法
计算属性可以被声明为类的属性访问器
初始化的数据可以被声明为类属性
数据、渲染以及所有的某视频剪辑软件生命周期钩子可以直接作为类的成员方法
所有其他属性,需要放在装饰器中
二、使用
vue-property-decorator 主要提供了以下装饰器
@道具
@PropSync
@型号
@手表
@提供
@注入
@提供反应
@InjectReactive
@Emit
@Ref
@组件(由某视频剪辑软件类组件提供)
混合蛋白(由某视频剪辑软件类组件提供)
1.@Component
成分装饰器它注明了此类为一个某视频剪辑软件组件,因此即使没有设置选项也不能省略
如果需要定义比如名称、组件、过滤器、指令以及自定义属性,就可以在部件装饰器中定义,如下:
从" vue-属性-装饰"导入{Component,Vue };
从" @/组件"导入{componentA,componentB };
@组件({
组件:{
组件一,
成分b,
},
指令:{
焦点:{
//指令的定义
插入:函数(el) {
焦点()
}
}
}
})
导出默认类你的成分扩展Vue{
}
2.compued、data、methods
这里取消了组件的数据和方法属性,以往数据返回对象中的属性、方法中的方法需要直接定义在班级中,当做类的属性和方法
@组件
导出默认类HelloDecorator扩展Vue {
count: number=123 //类属性相当于以前的数据
add(): number { //类方法就是以前的方法
这。计数一
}
//获取计算属性
get total(): number {
把这个还回去。第一次
}
//设置计算属性
集合总计(param:number): void {
this.count=param
}
}
3.@props
组件接收属性的装饰器,如下使用:
从vue-属性-装饰导入{Component,Vue,Prop };
@组件
导出默认类您的组件扩展Vue {
@Prop(String)
propA:字符串;
@ Prop([字符串,数字])
propB:string number;
@Prop({
type: String,//type: [String,Number]
默认值:"默认值",//一般为线或数字
//如果是对象或数组的话。默认值从一个工厂函数中返回
//默认值:()={
//返回[a , b]
//}
必填:真,
验证器:(值)={
返回[
进行中,
已解决
].indexOf(value)!==-1
}
})
propC:string;
}
4.@watch
实际就是Vue中的监听器,如下:
从" vue-属性-装饰"导入{ Vue,组件,手表}
@组件
导出默认类您的组件扩展Vue {
@手表(孩子)
onChildChanged(val: string,oldVal: string) {}
@Watch(person ,{ immediate: true,deep: true })
onPersonChanged1(val: Person,oldVal: Person) {}
@Watch(person )
onPersonChanged2(val: Person,oldVal: Person) {}
}
5.@emit
vue-属性-装饰提供的@Emit装饰器就是代替某视频剪辑软件中的事件的触发$emit,如下:
从" vue-属性-装饰"导入{Vue,Component,Emit };
@Component({})
导出默认类某些扩展Vue{
已安装(){
这个. on(emit-todo ),函数(n) {
控制台。对数
})
这个。emitto(世界);
}
@Emit()
emitTodo(n: string){
控制台。log( hello );
}
}
三 、总结
可以看出,上述typescript版本中vue类的语法与通常的javascript版本有很大的不同。class和decorator用在很多地方,但其实本质都是一样的,只有坚持写才会得心应手。
关于如何在Vue项目中应用TypeScript的这篇文章到此为止。有关在Vue项目中应用TypeScript的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。