omi

Web Components Framework - Web组件框架

OTHER License

Downloads
8.7K
Stars
13K
Committers
15

Bot releases are visible (Hide)

omi -

Published by dntzhang 12 months ago

omi -

Published by dntzhang about 1 year ago

omi - CSS Prop Supported 🎉 !

Published by dntzhang about 1 year ago

Usage

@tag('counter-demo')
class CounterDemo extends Component {
  static css = 'span { color: red; }'

  render() {
    return (
      <>
        <button onClick={sub}>-</button>
        <span>{count.value}</span>
        <button onClick={add}>+</button>
      </>
    )
  }
}

@tag('my-app')
class MyApp extends Component {

  cssProp: string = ''

  installed(): void {
    setInterval(() => {
      this.cssProp = `span{ font-size: ${Math.floor(Math.random() * 120)}px }`
      this.update()
    }, 500)

  }
  render() {
    return (
      <counter-demo css={this.cssProp || 'span{ color: green !important}'} />
    )
  }
}

企业微信截图_3f6d7888-2bac-4371-abe1-8552a1838538

omi - OMI 7.1.2 🎉

Published by dntzhang about 1 year ago

omi - OMI 7.1 🎉

Published by dntzhang about 1 year ago

  • Support bind decorator to automatically bind this
  • Support CSS tag function to generate shared styles
omi -

Published by dntzhang about 1 year ago

omi -

Published by dntzhang about 1 year ago

omi -

Published by dntzhang about 1 year ago

omi -

Published by dntzhang about 1 year ago

omi -

Published by dntzhang about 1 year ago

omi - Fix the issue of some built-in dom events not being able to bind

Published by dntzhang about 1 year ago

omi - Fix foreignObject rendering errors

Published by dntzhang about 1 year ago

omi - The update method no longer accepts ignoreAttrs

Published by dntzhang about 1 year ago

omi - Auto ignoreAttrs when using h function

Published by dntzhang about 1 year ago

import { define, WeElement, h } from 'omi'

define('my-counter', class extends WeElement {
  render() {
    return (
      <h.f>
        <span>{this.count}</span>
        {/* auto ignoreAttrs obj*/}
        <my-child obj={{ name: 'omi' }}></my-child>
      </h.f>
    )
  }
})


define('my-child', class extends WeElement {
  static propTypes = {
    obj: Object
  }

  render(props) {
    return (
      <h.f>
        <span>name:{this.props.obj.name}</span>
      </h.f>
    )
  }
})
omi - Multiple types of propTypes

Published by dntzhang about 1 year ago

import { tag, WeElement, h, render } from 'omi'

@tag('hello-omi')
class HelloOmi extends WeElement {
  propTypes: [String, Array],

  render(props) {
    return (
       ...
       ...
    )
  }
}
omi - Not handling non-standard JSON string prop

Published by dntzhang over 1 year ago

omi - Revert function vnode feature of omi

Published by dntzhang about 2 years ago

omi -

Published by dntzhang about 2 years ago

omi - Make tag extensible

Published by dntzhang about 2 years ago

omi - VNode of function type is already supported

Published by dntzhang about 2 years ago

let count = 0
render(({ update }) => {
  return (
    <>
      {count}
      <button onClick={(evt) => {
        count++
        update()
      }}
      >+</button>
    </>
  )
})
Package Rankings
Top 1.45% on Npmjs.org
Top 3.63% on Proxy.golang.org