ドレッシング人から始める
15264 ワード
Drayman 任意の利用可能なHTML要素、WebコンポーネントまたはカスタムDrayManサードパーティコンポーネントを単一のスクリプトでサーバーサイドコードと一緒に使用できるサーバーサイドコンポーネントフレームワークです.
DrayManを使用すると、ブラウザはユーザーが何を表示するかをレンダリングできます-すべてのロジックと計算は、サーバー側とUIがJSX構文を使用して書き込まれます.
Drayman機能を表示する最良の方法は何かを作成することです.それで始めましょう.
ユーザーがファイルシステムからファイルを選択し、コンテンツを表示できるようにするコンポーネントを構築しましょう.
まず、draymanをインストールする必要があります.これらのコマンドを実行して行うことができます.
何かをインストールしたくない場合は、常に訪問してCodesandBoxの中でDrayManを試すことができますnew.drayman.io .
移動する
DrayManはコンポーネントサーバー側を実行するので、任意のノードを使用できます.JSライブラリー.我々のケースでは
プロジェクトのルートディレクトリからファイル名を読みましょう
ユーザーがコンテンツを表示するファイルを覚えておく必要があります.を使用して行うことができます
加えましょう
インポートして、
サーバー側のロジックとクライアント側のビューを単一のスクリプトで組み合わせるコンポーネントを構築しました.
これがあなたに面白いと感じたならばofficial docs DrayManフレームワークに深く飛び込む!
DrayManを使用すると、ブラウザはユーザーが何を表示するかをレンダリングできます-すべてのロジックと計算は、サーバー側とUIがJSX構文を使用して書き込まれます.
Drayman機能を表示する最良の方法は何かを作成することです.それで始めましょう.
ファイルビューアコンポーネント
ユーザーがファイルシステムからファイルを選択し、コンテンツを表示できるようにするコンポーネントを構築しましょう.
まず、draymanをインストールする必要があります.これらのコマンドを実行して行うことができます.
npx @drayman/framework-init@latest my-app
cd my-app
npm start
ウェブサイトで利用可能になりますhttp://localhost:3033 .何かをインストールしたくない場合は、常に訪問してCodesandBoxの中でDrayManを試すことができますnew.drayman.io .
初期コンポーネントテンプレート
移動する
src/components/home.tsx
そして、その内容をこのコードで置き換えます:export const component: DraymanComponent = async () => {
return async () => {
return (
<>
<p>Select a file to view it directly from file system</p>
<select></select>
<br />
<pre></pre>
</>
);
};
};
コンポーネントの最初のスケルトンが表示されます.更なる<select>
は利用可能なファイルと<pre>
選択したファイルの内容を表示します.オプションの選択
DrayManはコンポーネントサーバー側を実行するので、任意のノードを使用できます.JSライブラリー.我々のケースでは
fs
モジュールです.プロジェクトのルートディレクトリからファイル名を読みましょう
<select>
オプションimport { promises as fs } from "fs";
export const component: DraymanComponent = async () => {
const files = (await fs.readdir("./")).filter((x) => x.includes("."));
return async () => {
return (
<>
<p>Select a file to view it directly from file system</p>
<select>
{files.map((fileName) => (
<option>{fileName}</option>
))}
</select>
<br />
<pre></pre>
</>
);
};
};
たった今、我々の構成要素は、どんな双方向性なしででも若干の要素だけを示しています.次のステップはそれを追加することです.ユーザーアクションに反応する
ユーザーがコンテンツを表示するファイルを覚えておく必要があります.を使用して行うことができます
onchange
イベント属性と、その関数を付加するexecuted server-side . また、追加する必要がありますvalue
属性をそれぞれoption
それでselect
はどのオプションが選択された知っている.加えましょう
fs.readFile
内部関数<pre>
DrayManが再レンダリング中にファイルの内容を読み込むようにタグを付けます.我々は、表示されませんpre
実際にファイルが選択されるまでimport { promises as fs } from "fs";
export const component: DraymanComponent = async () => {
const files = (await fs.readdir("./")).filter((x) => x.includes("."));
let selectedFile;
return async () => {
return (
<>
<p>Select a file to view it directly from file system</p>
<select
onchange={async ({ value }) => {
selectedFile = value;
}}
>
{files.map((fileName) => (
<option value={fileName}>{fileName}</option>
))}
</select>
<br />
{selectedFile && <pre>{await fs.readFile(selectedFile, "utf-8")}</pre>}
</>
);
};
};
ドロップダウンから選択を行うと、ページに何も起こらないことがわかります.DrayManでは、コンポーネントを再描画する必要があるときに厳密に指示する必要があります.それは特別な使用することができますhelper function forceUpdate
.インポートして、
onchange
選択したファイルが保存された後のイベントimport { promises as fs } from "fs";
export const component: DraymanComponent = async ({ forceUpdate, }) => {
const files = (await fs.readdir("./")).filter((x) => x.includes("."));
let selectedFile;
return async () => {
return (
<>
<p>Select a file to view it directly from file system</p>
<select
onchange={async ({ value }) => {
selectedFile = value;
await forceUpdate();
}}
>
{files.map((fileName) => (
<option value={fileName}>{fileName}</option>
))}
</select>
<br />
{selectedFile && <pre>{await fs.readFile(selectedFile, "utf-8")}</pre>}
</>
);
};
};
今、私たちのコンポーネントが完了し、ファイルの内容が選択されて表示されます.結論
サーバー側のロジックとクライアント側のビューを単一のスクリプトで組み合わせるコンポーネントを構築しました.
これがあなたに面白いと感じたならばofficial docs DrayManフレームワークに深く飛び込む!
Reference
この問題について(ドレッシング人から始める), 我々は、より多くの情報をここで見つけました https://dev.to/jansivans/getting-started-with-drayman-1ng7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol