🎉

tml v1.0が配信されました!!

2022/12/25に公開約1,100字

はじめに

こんにちは。tmlというシンプルなJSフレームワークを開発しているくつしたです。

今回このフレームワークのバージョン1.0を公開したのでこれについて紹介したいと思います。

tmlについて

tmlは軽量でCDNで簡潔するReactのようなフレームワークで、(P)Reactに対するアドバンテージは

  • 内部で利用しているhtmと含めても3kbと超軽量
  • Web Componentとして使える
    などです。

実際に書いてみよう

カウンターとHelloworldを作ってみましょう。

<counter-app text="Hello, world!" />
<script type="module">
    import { $, compact } from 'https://cdn.jsdelivr.net/gh/kstdx/tml@1.0/dist/tml.min.js'

    const HelloWorld = (props) => compact($`<h1>${props.text}</h1>`)

    const Counter = function(props){
        this.init({ count: 0 })

        return $`
        <${HelloWorld} text=${props.text} />
        <button @click=${() => this.$count++}>increment</button>
        <p>${this.$count}</p>
        `
    }

    customElements.define('counter-app', compact(Counter))
</script>

こんな感じで簡単に書くことができます。
(JSFiddleはこちら)

パフォーマンスはどうなのか

例えば<${HelloWorld} />のようにコンポーネントを追加するときはこの要素を独自にWeb Componentに定義しているのでdocumentツリーと分けてShadow DOMで管理しており、更新も分けてすることができるのでパフォーマンスは良いと思います。

さいごに

現在ドキュメントも執筆予定なのでぜひ使ってみて下さい!

Discussion

ログインするとコメントできます