Omi 是什么?

作者: 全栈弄潮儿 | 来源:发表于2019-06-11 09:32 被阅读7次

Omi (读音 /ˈomɪ/,类似于 欧米) 是下一代前端框架,基于 Web Components 设计,支持 PC Web、移动 H5 和小程序开发(One framework. Mobile & desktop & mini program)。

Omi looks really neat!     — Jason Miller (Creator of Preact)

*I really like the trend towards "frameworks" that:

"export default class WeElement extends HTMLElement {..}"

This one, Omi, is from Tencent.*
    — Dion Almaer

一个 HTML 完全上手

下面这个页面不需要任何构建工具就可以执行:

<script src="https://unpkg.com/omi"></script>
<script>
  const { define, WeElement, html, render } = Omi

  define('my-counter', class extends WeElement {
    install() {
      this.data.count = 1
      this.sub = this.sub.bind(this)
      this.add = this.add.bind(this)
    }

    sub() {
      this.data.count--
      this.update()
    }

    add() {
      this.data.count++
      this.update()
    }

    render() {
      return html`
        <div>
          <button onClick=${this.sub}>-</button>
          <span>${this.data.count}</span>
          <button onClick=${this.add}>+</button>
        </div>
        `}
  })

  render(html`<my-counter />`, 'body')
</script>

通过上面脚本的执行,你已经定义好了一个自定义标签,可以不使用 render 方法,直接使用 my-counter 标签:

<body>
  <my-counter></my-counter>
</body>

你可以使用 JSX 和 ES2015+ 来书写自定义元素:

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

define('my-counter', class extends WeElement {
  data = {
    count: 1
  }

  static css = `
    span{
        color: red;
    }`

  sub = () => {
    this.data.count--
    this.update()
  }

  add = () => {
    this.data.count++
    this.update()
  }

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

render(<my-counter />, 'body')

看上面高亮的部分,可以给组件加样式,比如上面的 span 的作用域仅仅在组件内部,不会污染别的组件。到现在你已经成功入门 Omi 了!你学会了:

  • 为组件添加结构,如上面使用 JSX 书写结构
  • 为组件添加行为,如上面的 onClick 绑定事件
  • 为组件添加样式,如上面的 static css
  • 渲染组件到 body,当然也可以把组件渲染到任意其他组件

github地址


更多angular1/2/4/5、ionic1/2/3、react、vue、微信小程序、nodejs等技术文章、视频教程和开源项目,请关注微信公众号——全栈弄潮儿

image

脑筋急转弯:

image

生活小窍门

image

相关文章

  • Omi 是什么?

    Omi (读音 /ˈomɪ/,类似于 欧米) 是下一代前端框架,基于 Web Components 设计,支持 P...

  • Omi初探

    官网 https://github.com/Tencent/omi 新概念 深入浅出 Shadow Dom HTM...

  • Omi 入坑指南 The second floor 初步接触

    Omi 已经出了 5.0 版本,由于新手,我们还是使用官方提供的 Cli 去安装,安装完毕后你会发现还是Omi 4...

  • 为什么你的肚皮舞omi技巧做得不够丝滑?

    【东方舞课堂】为什么你的肚皮舞omi技巧做得不够丝滑? ️许多学员,可以很好做出来omi,也知道轨迹线。但做出来的...

  • 2017-12-30

    omi sun Bears Strong Cool Plus 近江兄弟小熊防晒 薄荷 SPF50+ PA++++ ...

  • 疫情.怡情(之六百五十三)

    2021.12.14 星期二 阴 今天,意大利新增确诊人数是12712,其中拉齐奥是1470。 今天,意大利Omi...

  • ⑧你的omi丝滑?

    许多学员在做这个动作时,都没有质感。它是需要快速,才有那种味道。 为此,基本功一定要扎实才行。

  • Omi入坑指南 First scene 初步认识

    Omi.js 是腾讯出的一个开源框架,可谓是唯有外有谷歌[Angular2],Facebook[React],内有...

  • 【Go】自定义Json序列化

    一、忽略字段 我们知道,通过tag,可以有条件地实现定制Go JSON序列化的方式,比如json:"abc,omi...

  • 如何系统学习肚皮舞(八)

    这节我们学习:3/4西米,hagalla(哈嘎拉),omi(欧米)。 一、内容回顾: 首先还是要回顾一下上几节的内...

网友评论

    本文标题:Omi 是什么?

    本文链接:https://www.haomeiwen.com/subject/pfhffctx.html