abstract.js 471 B

12345678910111213
  1. class Mixin {
  2. constructor ({component, props, events, extraProps, exceptProps}) {
  3. this.render = function (h) {
  4. return h(component, {
  5. props: props.reduce((obj, key) => Object.assign(obj, {[key]: this[key]}), {}),
  6. on: events.reduce((obj, key) => Object.assign(obj, {[key]: this.transmitEvent}), {})
  7. })
  8. }
  9. this.props = [...extraProps, ...props.filter(prop => exceptProps.indexOf(prop))]
  10. }
  11. }
  12. export default prop => new Mixin(prop)