CSSについて
UIコンポーネントには、構造(HTML)、プレゼンテーション(CSS)、動作(JS)の3つの部分があります。一般的な処理方法は、設計者がプレゼンテーションに取り組む構造とロジックに焦点を当てた開発者です。
これが、boilerplatejsのサンプルアプリケーションを開発した方法です。たとえば、メニュー、テーマ、ローカリゼーションのコンポーネントは、開発者が完成した時点で次のような単純な「順序付けられていないリスト」として開発されました(Chrome開発者ツールを使用してテーマのcssリンクを削除するだけで、同じように表示されます)。
次に、デザイナーは醜いUIを使用して、これらのリストを専門的な方法で配置およびレンダリングするテーマを作成しました(src / modules / baseModule / themeに格納されている2つのテーマを開発しました)。もちろん、開発者が醜いものを提供することは困難ですが、設計者が自分の仕事をする能力を信頼する必要があります。異なるチームメンバーが同じコンポーネントで同時に作業できるソース管理ツールを使用していると確信しています。
テーマを目立つ機能にしたい場合は、コンポーネント固有のCSSファイルを最小化することをお勧めします。そうしないと、コンポーネントのレイアウトとルックアンドフィールを完全に変更するさまざまなテーマを作成できない可能性があります。コンポーネントローカルcssがないことの欠点は、コンポーネントが「プレゼンテーション」なしでは実際には自己完結型ではないという事実です。私はまだこの質問に正しく答えるのに苦労しています、どんなアイデア/助けもありがたいです!以下のこれに関する私の関連する質問を参照してください:
コンポーネント固有のローカルスタイルシートとのグローバルCSSテーマの組み合わせ
とにかく、CSSをコンポーネントに追加する方法はいくつかあります。これらのさまざまな方法について説明しているこの質問をご覧ください。
BoilerplateJSプロジェクトへの外部CSSファイルの追加
次に、コンポーネントの埋め込みについて...
コンポーネントを他のWebページに埋め込む場合は、ボイラープレートのDOMControllerを使用できます。たとえば、「departments(src / modules / sampleModule1 / departments)」コンポーネントを他のWebサイトに埋め込む必要があるとします。モジュール(src / modules / sampleModule1 / module.js)に、既存のUrlController(UrlControllerはブラウザーのURLの変更に応答します)に加えて、DomControllerを追加する必要があります。
//crate a dom controller that searchs within whole document body
var domController = new Boiler.DomController($("body"));
domController.addRoutes({
//look for elements with id 'department_comp' and embed the department component
'#department_comp' : new DepartmentComponent(context),
});
domController.start();
次に、Webページまたは外部サイトにDomControllerのdivまたはsection要素を配置して部門を埋め込みます。
<section id="department_comp"></section>
もちろん、あなたが世話をする必要がある2つのことがあります:
1)Webページにはboillerplatejsランタイムが含まれている必要があります。これは、すべてのサードパーティJSライブラリとテーマCSSファイルを静的にWebページに追加する必要があることを意味します。(私たちはこれを回避しています。v0.2-stableでは、単一のスクリプト宣言ですべてを実行できるブートストラッパーをリリースする予定です)
2)コンポーネントが別のドメインのJSONサービスを使用している場合は、JSONpまたはCORSのいずれかを使用してクロスドメインHTTPリクエストに対処する必要があります。ただし、RESTサービスが同じドメインでホストされている場合は、これについて心配する必要はありません。