课程表

Omi课程

工具箱
速查手册

Omi 安装和入门

当前位置:免费教程 » JS/JS库/框架 » Omi

安装 Omi

我们推荐使用 npm来管理你的前端依赖。

通过npm安装Omi,你只需要执行下面的命令:

  1. npm install omi

Hello World

你可以使用ES6+或者ES5的方式编写Omi程序来搭建你的Web程序。

Hello World with ES6+

你可以使用 webpack 打包工具,webpack会把你的模块代码打成一个很小的包,优化加载时间。使用babel,让你立刻马上使用ES6+来编写你的web程序。你只需要在webpack配置的module设置好babel-loader便可。

一个Omi的简短的例子如下所示:

  1. import Omi from './omi.js';
  2. class Hello extends Omi.Component {
  3. constructor(data) {
  4. super(data);
  5. }
  6. style () {
  7. //注意,return中的<style></style>包裹是可选的。主要是为了识别为JSX文件可以有CSS高亮。
  8. return `
  9. <style>
  10. h1{
  11. cursor:pointer;
  12. }
  13. </style>
  14. `;
  15. }
  16. handleClick(target, evt){
  17. alert(target.innerHTML);
  18. }
  19. render() {
  20. return `
  21. <div>
  22. <h1 onclick="handleClick(this, event)">Hello ,{{name}}!</h1>
  23. </div>
  24. `;
  25. }
  26. }
  27. Omi.render(new Hello({ name : "Omi" }),"#container");

组件生成的HTML最终会插入到#container中。上面的例子展示了Omi的部分特性:

  • data传递: new Hello(data,..)的data可以直接提供给render方法里的模板
  • 局部CSS: h1只对render里的h1生效,不会污染外面的h1
  • 声明式事件绑定: onclick调用的就是组件内的handleClick,this可以拿到当然的DOM元素,还可以拿到当前的event

点击这里→在线试试

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

  1. Omi.makeHTML('Hello', Hello);

那么你就在其他组件中使用,如

  1. ...
  2. render() {
  3. return `
  4. <div>
  5. <div>Test</div>
  6. <Hello data-name="Omi" />
  7. </div>
  8. `;
  9. }
  10. ...

点击这里→在线试试

Hello World with ES5

当然Omi没有抛弃ES5的用户。你可以使用ES5的方式编写Omi。如,在你的HTML中引用omi.js:

  1. <script src="omi.js"></script>

然后:

  1. var Hello = Omi.create("Hello", {
  2. style: function () {
  3. return "h1{ cursor:pointer }";
  4. },
  5. handleClick: function (dom) {
  6. alert(dom.innerHTML);
  7. },
  8. render: function () {
  9. return '<div> <h1 onclick="handleClick(this, event)">Hello ,{{name}}!</h1> </div>';
  10. }
  11. });
  12. Omi.render(new Hello({ name : "Omi" }),"#container");

当然除了在HTML引入脚本,你还可以使用AMD、CMD或者CommonJS的方式引入Omi,这里就不再一一列举。

需要注意的是,Omi.create的第一个参数Hello是用来生成Tag Name的。你可以在其他地方嵌入你的组件。如:

  1. ...
  2. render:function() {
  3. return '<div> <div>Test</div> <Hello data-name="Omi" /> </div>';
  4. }
  5. ...

点击这里→在线试试

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号