2aff690cb6 | ||
---|---|---|
asset | ||
dist | ||
docs | ||
example | ||
plugins | ||
scaffolding | ||
src | ||
test | ||
website | ||
.gitignore | ||
.travis.yml | ||
README.md | ||
index.html | ||
package.json | ||
webpack.config.js |
README.md
Open and modern framework for building user interfaces.
中文 | English
- 如果想体验一下Omi框架,请点击Omi Playground
- 如果想使用Omi框架,请阅读 Omi使用文档
- 如果想一起开发完善Omi框架,有更好的解决方案或者思路,请阅读 从零一步步打造web组件化框架Omi
- 关于上面的两类文档,如果你想获得更佳的阅读体验,可以访问Docs Website
- 如果你懒得搭建项目脚手架,可以试试Scaffolding for Omi
- 如果你有Omi相关的问题可以New issue
- 如果想更加方便的交流关于Omi的一切可以加入QQ的Omi交流群(256426170)
特性
- 超小的尺寸,7 kb (gzip)
- 良好的兼容性,支持IE8
- 完全面向对象的组件体系
- 局部CSS,HTML+ Scoped CSS + JS组成可复用的组件
- 更自由的更新,每个组件都有update方法,自由选择时机进行更新
- 模板引擎可替换,开发者可以重写Omi.template方法来使用任意模板引擎
- 提供了ES6+和ES5的两种开发方案供开发者自由选择
生态
- omi-finger Omi的AlloyFinger插件,支持各种触摸事件和手势
- omi-transform Omi的transformjs插件,快速方便地设置DOM的CSS3 Transform属性
- omi-touch Omi的AlloyTouch插件,Omi项目的触摸运动解决方案(支持触摸滚动、旋转、翻页、选择等等)
- omi-jquery-date-picker Omi的时间选择插件,支持各种时间或者时间区域选择
通过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
- omi-finger : Omi /AlloyFinger integration.
- omi-transform : Omi /transformjs integration.
- omi-touch : Omi /AlloyTouch integration.
- omi-jquery-date-picker: Omi / JQuery Date Picker integration.
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");
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>
`;
}
...
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 | |
Aresn | TalkingCoder | |
pasturn | Mars Holding | |
dntzhang | Tencent |
License
This content is released under the MIT License.