今天说说vue-property-decorator的官方链接:https://www.npmjs.com/package...说说vue-property的使用方法-decorator提供装饰器和Mixin函数。装饰器@Prop父子组件间通信传值的装饰器,与未使用的ts版本中vueprop组件的传值作用相同@Prop({type:String,default:''})xxx!:字符串;@PropSync与@prop类似,用于从组件传递值。不同之处在于1、@PropSync装饰器接收两个参数:propName:父组件传递的属性名;options:与@Prop第一个参数一致;2.@PropSync将生成一个新的计算属性//子组件@PropSync('variate',{type:String,default:''})variate0!:string;variate0为子组件使用变量//父组件:variate.sync="variate1"//variate1由父组件定义装饰器,它还在幕后创建了一个计算的getter和setter。通过这种方式,您可以像使用常规数据属性一样使用此属性,而且就像将.sync修饰符添加到父组件一样简单。@Component在Vue的ts版本中,@Component装饰器替代了原来没有使用ts版本的Component页面引用方法。@Model@Model装饰器允许我们自定义组件上的v-model,接收两个参数:event:string事件名称;options:与@Prop第一个参数一致;@Model('change',{type:Boolean})readonlychecked!:boolean当父组件调用子组件触发一个新值的change事件时,这个值会更新到子组件@ModelSync的@ModelSyncdecorator接受三个参数:propName:类型名称;event:事件名称,字符串类型;options:与@Prop第一个参数一致;@ModelSync('checked','change',{type:Boolean})readonlycheckedValue!:boolean@Model@ModelSync区别参考@PropSync@Watch@Watch装饰器接收两个参数:1.path:被调用的属性名称听了;2.options:可以包含两个属性immediate?:boolean监听开始后是否立即调用回调函数;deep?:boolean监听对象的属性发生变化时,是否调用回调函数;@Watch('show',{immediate:true})onShow(value){//回调函数//将获取值以显示更新的值console.log('value',value)}@Emit官方解释:Functionsdecorated@Emit$将发出它们的返回值,然后是它们的原始参数。如果返回值是一个承诺,它将在被发出之前被解决。如果事件名称未通过事件参数提供,则使用函数名称。在这种情况下,camelCase名称将转换为kebab-case。总之,被@Emit装饰器装饰的函数方法会立即调用要Emit的方法。如果函数方法是异步的,它会在异步启动之前被调用。如果Emit的参数名和当前方法名相同,@Emit不需要传入参数,方法的驼峰命名会自动识别(转换)为短划线分隔的命名(意思当定义emit时,它以横条命名,@Emit可以使用相应的驼峰命名)。用法:@Emit()//emitis'add-to-count'addToCount(n:number){this.count+=n}@Emit('reset')resetCount(){this.count=0}@Provideprovide:对象|()=>Objectinject:Array
