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

コンポーネントベースのフロントエンド開発プロセスの詳細な説明
背景<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をデプロイする方法

推薦する

js の通常形式の日付と時刻に 0 を自動的に追加する 2 つのソリューション

目次背景解決策1アイデア:コード:解決策2アイデア:要約する参照する背景日付と時間をフォーマットする...

Vueライフサイクル機能の詳細な説明

目次ライフサイクル関数一般的なライフサイクルフックVue のインスタンス破棄について:要約するライフ...

MySQL実行計画の詳細な分析

序文前回の面接では、実行計画について質問されたとき、多くの人がそれが何なのか知りませんでした。実行計...

MySQL での varchar 型の日付の比較、並べ替え、その他の操作の実装

MySQL を使用する場合、日付は通常、datetime や timestamp などの形式で保存さ...

Vue で Google サードパーティ ログインを実装するためのサンプル コード

目次1. 開発者プラットフォームの構成問題を解決する1. 開発者プラットフォームの構成1. 開発者プ...

Docker を使用して静的 Web サイト アプリケーションを作成する (複数の方法)

静的ウェブサイトをホストできるサーバーは数多くあります。この記事では、nginx、apache、to...

DockerコンテナにPythonアプリケーションをデプロイするプロセスの分析

シンプルなアプリケーションの展開1. ディレクトリ構造: └── Pythonpro #ディレクトリ...

WeChat アプレットカスタムタブバーステップ記録

目次1. はじめに2. タブバーのスタイルをカスタマイズする3. カスタムタブバーと関連設定を導入す...

Vue computedのキャッシュ実装原理の詳細な説明

目次計算結果を初期化する依存関係の収集アップデートを配布する総括するこの記事では、計算された初期化と...

HTML テーブルタグチュートリアル (45): テーブル本体タグ

<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...

MySQL 数値型オーバーフローの処理方法

さて、質問させてください。MySQL で列を int(0) に設定すると何が起こりますか?この問題を...

MySQL REVOKE でユーザー権限を削除する

MySQL では、REVOKE ステートメントを使用してユーザーの特定の権限を削除できます (ユーザ...

Dockerコンテナ内の設定ファイルの変更の実装

1. コンテナに入るdocker run [オプション] イメージ名 [起動コンテナに渡されるコマン...

Reactにおける制御されたコンポーネントと制御されていないコンポーネントの簡単な分析

目次制御されていないコンポーネント制御コンポーネント知らせ結論は制御されていないコンポーネントフォー...

div の幅が width:100% に設定されていて、パディングまたはマージンが親要素を超えてしまう問題の解決方法

序文この記事では、div の幅を 100% に設定し、親要素を超えてパディングまたはマージンを設定す...