コンポーネントベースのフロントエンド開発プロセスの詳細な説明

コンポーネントベースのフロントエンド開発プロセスの詳細な説明
背景<br />フロントエンドを担当する学生は、ページが多すぎると煩雑になるため、開発プロセスを統一する必要があることを知っています。開発プロセスの品質は、ページ開発の効率に直接影響し、間接的にゲームの期間に影響します。

開発プロセスの目標<br />ページを迅速に完成できます。
コンポーネント化により、コードの再利用が保証され、作業の重複を回避できます。
ページがオンラインになった後も効率的に実行できることを確認します。

開発プロセスの範囲<br />ファイル保存標準。
コードの組織構造とコーディング標準。
リリース戦略。
プロセス全体をサポートするために必要な開発ツール。
各チームには独自の開発プロセス仕様があります。実際のところ、最良のプロセス仕様というものは存在せず、最も適したものだけが存在します。以下に、複数のチームの開発プロセスを基に、概要をまとめた一般的な開発プロセス仕様書を紹介します。

フォルダーの指定<br />プロジェクト フォルダーが p/ であると仮定します。このフォルダには以下が含まれます:
p/assets/ 開発ツールを格納します
p/dev/ は開発中のプロジェクトファイルを保存します
p/dpl/はプロジェクトの共通コンポーネントライブラリを保存します
p/release/ にはリリースされたプロジェクトファイルが保存されます (ここにあるファイルはすべて圧縮されています)
p/dev/ の構造は次のとおりです
p/dev/website1/public/ サイト全体で共有されるプロジェクト(サイト全体で共有されるファイルを保存)
p/dev/website1/project1/ プロジェクト 1
p/dev/website1/project2/ プロジェクト 2
....
各プロジェクト内の構造は次のとおりです。
p/dev/ウェブサイト1/プロジェクト1/ページ1.html
p/dev/website1/project1/assets/page1.js
/dev/website1/project1/assets/page1.css
p/dev/ウェブサイト1/プロジェクト1/アセット/画像/
p/dev/ウェブサイト1/プロジェクト1/include/ページ1.inc
p/dpl/ 内の構造は次のとおりです
p/dpl/system/ システム js モジュール
p/dpl/controls/ UI モジュール
p/dpl/widgets/ ビジネス コンポーネント 各フォルダーの構造は次のとおりです。
p/dpl/システム/カテゴリ1/コンポーネント1.html
p/dpl/システム/カテゴリ1/アセット/コンポーネント1.js
p/dpl/システム/カテゴリ1/アセット/コンポーネント1.css
p/dpl/システム/カテゴリ1/アセット/画像/
p/release/ 内の構造は次のとおりです。
オンラインファイルの仕様によっては、p/dev/ と同じになることもあります。

コンポーネントベースの開発実装
1. サイト全体で使用されるJSとCSS
サイト全体で使用される js と css は、ツールを使用して p/dpl/ からいくつかのコンポーネントを選択して合成されます。 p/dev/website1/public/assets/common.js (または.css) に配置します。
2. サイト全体で共有されていないJSとCSS
次のコードを使用して、コンポーネントを Web ページに読み込むことができます。
?using("System.Category1.Component1");
var comp1 = 新しい Component1();
このうち、System.Category1.Component1 は p/dpl/system/category1/assets/component1.js (または .css) にマッピングされます。
開発状態では、 を使用するとコンポーネントが同期的に読み込まれます。ページが公開されると、 は、動的な読み込みを必要とせずに、対応するコンポーネントのソース コードに置き換えられます。
3. jsとcssの非同期読み込み
プロセス自体は、コンポーネントを非同期にロードする機能を提供しません。プロジェクトでサードパーティのモジュール ローダーを使用して、非同期ロードを実装できます。
4. HTML の再利用<br />HTML ファイルに include("include/topbar.inc") と記述して、対応する HTML フラグメントをページに埋め込みます。

ページの公開<br />ページの公開では主に次のことが行われます。
インラインの include や using などにより、ページ リクエストの数を減らします。
js と css を圧縮します。
実際のプロジェクトのニーズに合わせてファイルの場所を再変更します(たとえば、js と css を抽出し、html をフィルター処理する必要がある場合)

<<:  変換を使用して純粋な CSS ポップアップ メニューを実装するためのサンプル コード

>>:  DockerでKafkaをデプロイする方法

推薦する

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

Linux ディスクのシーケンシャル書き込みとランダム書き込みの方法

1. はじめに● ランダム書き込みではヘッドがトラックを頻繁に変更するため、効率が大幅に低下します。...

オブジェクトのプロパティを反復処理する際の TypeScript の問題

目次1. 問題2. 解決策1. オブジェクトをanyとして宣言する2. オブジェクトのインターフェー...

Linuxロスレス展開方法

概要クラウド プラットフォームのお客様のサーバーでは、業務量が拡大し続けるとディスク容量が不足する場...

開発にVscodeとdockerを組み合わせて使用​​する詳細なプロセス

序文Docker と VS Code を使用すると、ローカル開発環境全体を最適化し、プロジェクトの進...

Centos7.3 で mysql5.7.18 をインストールして初期パスワードを変更する方法

この記事では、Centos7.3でのmysql5.7.18のインストールと初期パスワードの変更につい...

MySQL での limit の使用方法は何ですか (推奨)

SELECT * FROM テーブル名制限m,n; SELECT * FROM テーブル LIMI...

Dockerはイメージ名とTAG操作の名前を変更します

docker イメージを使用する場合、以下に示すように、REPOSITORY と TAG の両方が ...

JSON.parse と JSON.stringify の使い方の詳細な説明

目次JSON.パースJSON.parse 構文リバイバーパラメータJSON.parse の機能その他...

MySQL データベース内の varchar 型の数値のサイズを比較する方法

テストテーブルを作成する -- ---------------------------- -- ch...

ローカルの Windows リモート デスクトップから Alibaba Cloud Ubuntu 16.04 サーバーに接続する方法

ローカル Windows リモート デスクトップが Alibaba Cloud Ubuntu 16....

React antd タブの切り替えによりサブコンポーネントが繰り返し更新される

説明する: Tabs コンポーネントが切り替わると、TabPane に含まれる同じサブコンポーネント...

MySQL の 10 進数データ型の小数点埋め込み問題の詳細な説明

序文開発プロセスでは、10 進データ型がよく使用されます。 MySQL では、小数点は正確なデータ型...

CSS3 で作成された背景グラデーションアニメーション効果

成果を達成する 実装コードhtml <h1 class="text-light&qu...

HTMLタグのtarget属性の使用法

1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...