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

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

推薦する

Xtrabackup を使用して MySQL をバックアップおよび復元する方法

目次1. バックアップ1.1 万全の準備1.2 追加の準備2 バックアップとリカバリ2.1 データの...

Vue で手ぶれ補正を実装するためのサンプルコード

手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...

mysqlはタイムゾーン関連の問題を解決します

序文: MySQL を使用すると、時間の表示が正しくない、タイムゾーンが GMT+8 ゾーンにない、...

この記事では、VUE の複数の DIV とボタン バインディングの Enter イベントを実装する方法を説明します。

現在、OK ボタンをクリックしたときやキーボードの Enter キーを押したときに操作を実行するとい...

CentOS の環境変数と設定ファイルの詳細な説明

序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...

上下に空白行があるフォームを挿入する解決策

ウェブページを作成するときに、フォームを挿入した後、フォームの上下に空白行が表示されることがよくあり...

ウェブサイトのフロントエンドをエレガントでユーザーにとって魅力的なものにする方法

ウェブフロントエンドのウェブサイトの気質は感情であり、言葉なしでユーザーを魅了できる感情です。では、...

MySQL インデックスの原理と使用例の分析

この記事では、例を使用して MySQL インデックスの原理と使用方法を説明します。ご参考までに、詳細...

略語マークと頭字語マーク

<abbr>タグと<acronym>タグは、Web ページに表示される略語と...

Vue+SpringBoot で Alipay サンドボックス決済を実装するためのサンプルコード

まず、Alipay サンドボックスから一連のものをダウンロードします。多くのブログで取り上げられてお...

Vueはカウントダウン機能を実装する

この記事の例では、カウントダウン機能を実装するためのVueの具体的なコードを参考までに共有しています...

MySQLデータベースエンジンをInnoDBに変更する

PS: ここではPHPStudy2016を使用しています1. 変更中にMySQLを停止する2. my...

Dockerイメージの作成、アップロード、プル、デプロイを理解するための記事

目次1. 画像1. 鏡とは何ですか? 2. 画像の構成と目的(1) Dockerファイル(2)スクラ...

Vue3.0 手書き拡大鏡効果

達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...

jQueryはフェードインとフェードアウト効果を実現します

jQuery を使用してフェードインとフェードアウト効果を完成させる前に、まずいくつかのコードを理解...