decorator-class
1.0.15 • Public • Published
decorator-class插件使用说明
- @TransformParma(arg):用在class的方法上面,参数可以为function或string,当参数为function时,会接受函数调用时真正的参数,将function(arg)执行完后的结果当作参数传给当前修饰的class方法,当参数为string时,若class的实例上存在名为string的方法,则会调用,将调用后的结果传给当前修饰的方法.见下面demo
- @CheckParma(arg):用在class的方法上面,参数可以为function或string,当参数为function时,会接受函数调用时真正的参数,当function(arg)执行完后的结果为true时,执行给当前修饰的class方法,当参数为string时,若class的实例上存在名为string的方法(执行后返回结果)或属性,当值为true时,执行当前修饰的方法.见下面demo
- @NextAction(fns,fne):用在class的方法上面,执行当前修饰的class方法,若返回为promise对象,则会将then的值传给fns,将catch的值传给fne。若不为promise则直接将值传给fns。参数(fns,fne)均可以为function或string(同上),见下面demo
- @InitState 作用于属性上,加上此注解后,实例对象上会自动注入一个方法,如下demo,则可使用this.resetFormdata方法重置formData
- @Before 作用于方法上,参数(fn:函数),若fn返回promise则会在then中执行当前方法。
const Test = opt => `${opt}-666`;
const isNumber = opt => isNaN(opt);
class Demo {
@InitState
formData = {
id: ''
}
show=true;
go(opt) {
retunrn `${opt-555}`
}
isBoolean(opt){
return Boolean(opt);
}
@TransformParma(Test)
show1(opt) {
console.log(opt)
}
@TransformParma('go')
show2(opt) {
console.log(opt)
}
@CheckParma(isNumber)
show3(opt) {
console.log(opt)
}
@CheckParma('isBoolean')
show4(opt) {
console.log(opt)
}
@CheckParma('show')
show5(opt) {
console.log(opt)
}
@NextAction('success','fail')
ajax(flag) {
return new Promise((resolve,reject)=> {
if(flag) {
console.log(true)
resolve(true)
} else {
console.log(false)
reject(false)
}
})
}
@NextAction('success')
test() {
console.log(1);
return 1;
}
success(data) {
cosole.log(data+1)
}
fail(e) {
cosole.log(e)
}
@Before(() => new Promise(resolve => {
console.log('before:1')
resolve()
}))
testBefore() {
console.log('before:2');
return 1;
}
}
// 调用
const demo = new Demo();
demo.show1('2'); // 打印2-666
demo.show2('2'); // 打印2-555
demo.show3('2'); // 方法不执行,不打印
demo.show4(true); // 方法执行,打印true
demo.show5('2'); // 方法执行,打印2
demo.ajax(true); // 先打印true,后打印1
demo.test(); // 先打印1,后打印2
demo.testBefore(); // 先打印before:1,后打印before:2
欢迎提出各种bug,有问题可以直接发送邮件到 shmilylp9314wz@163.com
Readme
Keywords
nonePackage Sidebar
Install
Weekly Downloads