JSPM

omi

0.3.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1514
  • Score
    100M100P100Q120447F
  • License MIT

Open and modern framework for building user interfaces.

Package Exports

  • omi

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (omi) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Omi

Open and modern framework for building user interfaces.


中文 | English

Omi

特性

  • 超小的尺寸,7 kb (gzip)
  • 良好的兼容性,支持IE8
  • 完全面向对象的组件体系
  • 局部CSS,HTML+ Scoped CSS + JS组成可复用的组件
  • 更自由的更新,每个组件都有update方法,自由选择时机进行更新
  • 模板引擎可替换,开发者可以重写Omi.template方法来使用任意模板引擎
  • 提供了ES6+和ES5的两种开发方案供开发者自由选择

生态

通过npm安装

npm install omi

Hello World

class Hello extends Omi.Component {
    constructor(data) {
        super(data);
    }
    style () {
        return  `
            h1{
                cursor:pointer;
            }
         `;
    }
    handleClick(target, evt){
        alert(target.innerHTML);
    }
    render() {
        return  `
        <div>
            <h1 onclick="handleClick(this, event)">Hello ,{{name}}!</h1>
        </div>
        `;

    }
}

Omi.render(new Hello({ name : "Omi" }),"body");

[点击这里->在线试试]

如果使用omi.lite.js版本(不包含mustachejs模板引擎)的话,也可以使用 ${this.data.name} 的方式

你可以使用Omi.makeHTML来生成组件标签用于嵌套。

    Omi.makeHTML('Hello', Hello);

那么你就在其他组件中使用,并且通过data-*的方式可以给组件传参,如:

  ...
  render() {
        return  `
        <div>
            <div>Test</div>
            <Hello data-name="Omi" />
        </div>
        `;
    }
    ...

[点击这里->在线试试]

你可以使用 webpack + babel,在webpack配置的module设置babel-loader,立马就能使用ES6+来编写你的web程序。

当然Omi没有抛弃ES5的用户,你可以使用ES5的方式编写Omi。[点击这里试试ES5写Omi程序]

中文 | English

  • If you want to experience the Omi framework, please click Omi Playground
  • If you want to use the Omi framework,please read the Omi documentation
  • If you want to develop and improve the Omi framework, there are better solutions or ideas, please read develop the Omi framework step by step
  • If you want to get a better reading experience of the above two categories of documents, you can visitDocs Website
  • If you are too lazy to build a project scaffolding, you can try Scaffolding for Omi
  • If you have Any problems,please New issue
  • If you want to be more convenient on the exchange of all Omi can join the QQ Omi exchange group (256426170)

Fetures

  • Super tiny size, 7 KB (gzip)
  • Good compatibility, support IE8
  • Fully object-oriented component system
  • Support Scoped CSS, reusable components are composed of HTML, Scoped CSS and JS
  • More free updates, each component has a update method, free to choose the right time to update
  • Template engines can be replaced, developers can override the Omi.template method to use any template engine
  • Provides two development way ( ES6+ and ES5) for developers to choose freely

Plugins

Install

npm install omi

Hello World

class Hello extends Omi.Component {
    constructor(data) {
        super(data);
    }
    style () {
        return  `
            h1{
                cursor:pointer;
            }
         `;
    }
    handleClick(target, evt){
        alert(target.innerHTML);
    }
    render() {
        return  `
        <div>
            <h1 onclick="handleClick(this, event)">Hello ,{{name}}!</h1>
        </div>
        `;

    }
}

Omi.render(new Hello({ name : "Omi" }),"body");

[Try it on Playground]

You can use Omi.makeHTML to generate component tags for nesting.

    Omi.makeHTML('Hello', Hello);

Then you can use it in other components, and pass parameter to the component through the data-* , such as:

  ...
  render() {
        return  `
        <div>
            <div>Test</div>
            <Hello data-name="Omi" />
        </div>
        `;
    }
    ...

[Try it on Playground]

You can use webpack + babel,configure the babel-loader in the module settings of webpack,then you can use ES6+ to write your web program.

Omi did not abandon the ES5 users, you can also use ES5 to write Omi.[Try Omi-ES5 on Playground]

Contributors

name avatars company
xcatliu Microsoft
pasturn
dntzhang Tencent

License

This content is released under the MIT License.