Webコンポーネントを使用したオープンソースフロントエンドフレームワーク
起源物語
昨年、私はWebコンポーネントに基づいた別のフロントエンドフレームワークの作成に取り組んできました.すべてのオープンソースと歓迎の貢献とプルの要求は、すべての私のライブラリhereを見つける.EzComponentはこの点での私の最新の努力です、そして、私は私がワークフロー、学習曲線と特徴で甘い点を打ったと思います.
https://github.com/AlexMercedCoder/ezcomponent
新規プロジェクトの生成
次のコマンドを実行してスピンにしましょう.
npx create-ezcomponent-app project1
npm install
devサーバを実行する
npm run dev
ファイルレイアウト
src/indexで.これを見つける
インデックス.js
import ezcomponent from "ezcomponent"
import "./components/Header";
import "./components/Main";
import "./components/Footer";
ezcomponent({
name: "my-app",
render: (info, props, component) => `
<my-header></my-header>
<my-main></my-main>
<my-footer></my-footer>
`
})
//Inject into body
const body = document.querySelector("body");
body.innerHTML = `<my-app></my-app>`;
コンポーネントの定義は、EzComponent関数を実行し、コンポーネントのすべての構成を持つオブジェクトを渡すだけです.設定オブジェクトの最小値は以下の通りです.
ケバブケースストリング「ケバブケース」です
スタイリング
渡すことができるもう一つのプロパティは、CSSの文字列を返す関数であり、そのようにアプリケーションコンポーネントを変更する関数です.
ezcomponent({
name: "my-app",
styles: (info, props, component) => `
h1 {
color: red;
}
`,
render: (info, props, component) => `
<my-header></my-header>
<my-main></my-main>
<my-footer></my-footer>
`
})
注意、我々は変更を参照してください.これは、すべてのコンポーネントが独自のshadowdomを持っているためです.フードの下では、これはWebコンポーネントAPIの単なる抽象化であり、部品やスロットのような機能が利用できます.WebコンポーネントAPIの上の私の前のポストを探して、基になるWebコンポーネントシステムについてもっと学びましょう.ここでの私の目標は、ビルドの反応性といくつかの余分なレベルのライフサイクルでWebコンポーネントを簡単に動作させることでした.だから、フッターのコンポーネントに頭をして、スタイリングを試してみましょう.
フッター.js
import ezcomponent from "ezcomponent";
ezcomponent({
name: "my-footer",
styles: (info, props, components) => `
h1 {
color: red;
}
`,
render: (info, props, component) => `<h1>I am the footer component</h1>`,
});
今フッターコンポーネントのテキストは赤です.コンポーネントをエクスポートする必要はありません.ファイルをインポートするだけで、ファイル内のezComponent関数がブラウザでコンポーネントを登録して呼び出され、アプリケーション全体で使用できるようになります.ライフサイクル
いくつかの関数があり、すべての情報が渡されます( info , props , component )
情報
情報はVueの中の反応またはデータの状態に等しいです、それを使用するために、ちょうどあなたが通過したいどんなデータでもオブジェクトであるinfoと呼ばれるConfigオブジェクトにInfoプロパティを加えてください.情報を更新するには、コンポーネントを使用します.関数を更新し、任意の更新または新しいプロパティの情報にオブジェクトを渡します.ので、すべてのプロパティを毎回一覧表示するか、またはスプレッド演算子を使用する必要はありません.更新はprerender、レンダリング、およびpostrenderの別のレンダリングサイクルをトリガします.
メソッドの追加
コンポーネントがすべての機能に渡されるので、configオブジェクト内の異なる関数のコンポーネントに新しいプロパティとメソッドを追加できます.初期の関数ではどのようなメソッドを定義してもよいのです.
結論
それはezcomponentです、私はあなたがそれを与えるか、貢献をして、これまたは私の他の図書館のどれにでも引く要求をすることを考慮することを望みます!
Reference
この問題について(Webコンポーネントを使用したオープンソースフロントエンドフレームワーク), 我々は、より多くの情報をここで見つけました https://dev.to/alexmercedcoder/ezcomponent-open-source-frontend-framework-using-web-components-34hテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol