Vue 装饰器 vue-property-decorator
vue-property-decorator
@Prop
@PropSync
@Model
@ModelSync
@Watch
@Provide
@Inject
@ProvideReactive
@InjectReactive
@Emit
@Ref
@VModel
@Component
( provided by vue-class-component )Mixins
(the helper function namedmixins
provided by vue-class-component )
@Component
格式:
@Component(options:ComponentOptions = {})
@Component
装饰器可以接收一个对象作为参数,可以在对象中声明components
,filters
,directives
等未提供装饰器的选项,虽然也可以在@Component
装饰器中声明computed
,watch
等,但并不推荐这么做,因为在访问 this 时,编译器会给出错误提示,即使没有组件也不能省略@Component
,否则会报错。
import {Component,Vue} from 'vue-property-decorator';
import {componentA,componentB} from '@/components';
@Component({
name:"name",
components:{
componentA,
componentB,
},
directives: {
focus: {
// 指令的定义
inserted: function (el) {
el.focus()
}
}
}
})
export default class YourCompoent extends Vue{ }
@Prop
父子组件之间值的传递
格式:
@Prop(options: (PropOptions | Constructor[] | Constructor) = {})
Constructor
:例如String
,Number
,Boolean
等,指定prop
的类型;Constructor[]
:指定prop
的可选类型;PropOptions
:可以使用以下选项:type
,default
,required
,validator
。
import { Vue, Component, Prop } from 'vue-property-decorator'
@Component
export default class YourComponent extends Vue {
@Prop(Number) readonly propA: number | undefined
@Prop({ default: 'default_value' }) readonly propB!: string
@Prop([String, Boolean]) readonly propC: string | boolean | undefined
}
注意
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论