javascript - React ES6, How to keep decorators in separate files -
we have created lots decorator in reactapp.
now have write decorators in every file, typical code this.
******** mycomponent.js *************
import {decorators} 'decoratorlib'; import react, {component} 'react'; const {moduleloader, moduleconfig, log} = decorators; @moduleloader({ config: { k1: 'value 1', k2: 'value 2', viewclass: moduleviewclass, ...moduleconfig }, proptypes: { name: proptypes.string.isrequired, age: proptypes.number, address: proptypes.string, quantity: proptypes.number } }) @moduleconfig({ config: { k1: 'value 1', k2: 'value 2', viewclass: moduleviewclass, ...moduleconfig } }) @log({ config: { warning: true, error: true, breakonerror:false } }) class mycomponent extends component { }
i wondering how, can write these decorators in sperate file , write bridge pass/connect classes
like can have decorators.js file, write decorators here , write method or injector inject these in classes.
decorators values, can change code to
const loaderdecorator = moduleloader({ config: { k1: 'value 1', k2: 'value 2', viewclass: moduleviewclass, ...moduleconfig }, proptypes: { name: proptypes.string.isrequired, age: proptypes.number, address: proptypes.string, quantity: proptypes.number } }); const configdecorator = moduleconfig({ config: { k1: 'value 1', k2: 'value 2', viewclass: moduleviewclass, ...moduleconfig } }); const logdecorator = log({ config: { warning: true, error: true, breakonerror:false } }); @loaderdecorator @configdecorator @logdecorator class mycomponent extends component { }
and @ point you're free move variables file want, import them file use them, e.g.
import { loaderdecorator, configdecorator, logdecorator } './my-decorators'; @loaderdecorator @configdecorator @logdecorator class mycomponent extends component { }
with
export const loaderdecorator = moduleloader({ config: { k1: 'value 1', k2: 'value 2', viewclass: moduleviewclass, ...moduleconfig }, proptypes: { name: proptypes.string.isrequired, age: proptypes.number, address: proptypes.string, quantity: proptypes.number } }); export const configdecorator = moduleconfig({ config: { k1: 'value 1', k2: 'value 2', viewclass: moduleviewclass, ...moduleconfig } }); export const logdecorator = log({ config: { warning: true, error: true, breakonerror:false } });
Comments
Post a Comment