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(んずくすと)
も作りましたので、次はそれを紹介します。
以上です。よろしくお願いいたします。