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

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -