Zheleznayaのご紹介

お世話になっております。 本日は Zheleznaya のご紹介をさせていただきます。

よろしくお願いします。

Zheleznaya?

Zheleznaya

Reactやhyperappのような tsx or jsx で書けるウェブフロントエンドフレームワークです。 TypeScriptで300行くらい(前は200行くらいだった気がするのに、気付いたら増えている・・・)のシンプルなコードなので、すぐに読むことができるでしょう。

documentation?

こちらです。さっき作りました。

なお、このドキュメント自体が Zheleznaya で実装されているので、サンプルでもあるというわけです。

さすがに、ドキュメントをプログラムで実現するのは力技すぎるので、Markdownをfetchしてきて、それをhtmlに変換して表示する感じになっています。

concept?

自分の勉強のために作っただけの完全なオレオレフレームワークです。

不要なレンダリングを減らすとかそういう最適化的なものは一切ありません。

feature?

  • シンプルなAPI
  • 状態管理は一つの store でしかできない(強制flux)
    • storeはreactiveになっていて、中の値を書き換えると、再レンダリングされる
    • このへんはグローバルな変数をガッツリ使っている。いつかクラスで書き直す。
  • Reactみたいに書ける
  • 型定義つき

sample?

import { render, h, Component, createStore } from "zheleznaya";

const store = createStore({ count: 0 });

const App = () => {
  return (
    <div>
      <button onClick={() => (store.count++)}></button>
      <h1>{store.count}</h1>
    </div>
  );
}

render(<App />);

なお、Reactに対するnext、Vueに対するnuxtのように、ZheleznayaのためのSSRフレームワーク nzxt(んずくすと) も作りましたので、次はそれを紹介します。

以上です。よろしくお願いいたします。