Moff.jsおよび変調されたブートストラップ

Moff.jsとブートストラップ

前の記事でMoff.jsフレームワークを使用して、CSSフレームワークを使用せずにMobile Firstページを簡単に作成できる方法について説明しました。

しかし今日、ほとんどのプロジェクトは何らかのCSSフレームワークを使用しており、これらのフレームワークの1つがBootstrapです。 Bootstrapが最も人気のあるMobile Firstフレームワークであると言っても安全です。

このフレームワークの最大の欠点はそのサイズです。 縮小版の重量は154.9KBであり、これらは単なるCSSおよびJSファイルです。

多くの場合、開発者は機能の一部のみを必要としますが、フレームワーク全体を全体として接続します。 そのため、モバイルデバイスユーザーは大量の過剰なトラフィックをダウンロードする必要があります。 この問題の解決策は、フレームワークを、モバイルファーストアプローチで使用するのに便利な、頻繁に使用されるモジュールとあまり使用されないモジュールのグループに分割することでした。 これらの各グループは、Moffの個別のモジュールとして提出されました。

すべてのモジュールは3つのカテゴリに分類されます。


メインカテゴリには、次のモジュールがあります。


コンポーネントカテゴリには、すべてのブートストラップコンポーネントが含まれます:アラート、バッジ、パンくずリスト、ボタングループ、ドロップダウンなど
JavaScriptsカテゴリには、すべてのBootstrap JSモジュールが含まれます:Affix、Alert、Button、Carouselなど。
Moff ページでモジュールの詳細なリストを読むことができます

モジュールの使用方法


Coreモジュールは基本的なものであり、他のすべてのモジュールの主な依存関係としてすべてのページに接続されています。
<link rel="stylesheet" href="bower_components/moff/dist/bootstrap/main/core.css"> 

次のBootstrap Sassモジュールで構成されています。
 @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/normalize'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/print'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/scaffolding'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/utilities'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/component-animations'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/responsive-embed'; @import 'node_modules/bootstrap-sass/assets/stylesheets/bootstrap/close'; 

残りのモジュールは2つの方法で接続できます。

AMD(非同期モジュール定義)


 Moff.amd.register({ id: 'grid', depend: { js: ['bower_components/moff/dist/bootstrap/javascripts/button.js'], css: [ 'bower_components/moff/dist/bootstrap/main/grid.css', 'bower_components/moff/dist/bootstrap/components/pagination.css', ] }, file: { js: ['modules/listing.js'], css: ['modules/listing.css'] }, loadOnScreen: ['md', 'lg'], onWindowLoad: false }); 

モジュールを登録したら、それをダウンロードして使用を開始する必要があります。 ダウンロードする方法は2つあります。

AMDを使用して
 Moff.amd.include('grid'); 

またはデータイベントの使用
 <a href="listing.html" data-load-target="#grid-target" data-load-module="grid">Show listing</a> <div id="grid-target"></div> 


HTML


 <link rel="stylesheet" href="bower_components/moff/dist/bootstrap/main/core.css"> <link rel="stylesheet" href="bower_components/moff/dist/bootstrap/main/grid.css"> <link rel="stylesheet" href="bower_components/moff/dist/bootstrap/main/typography.css"> 


どちらのアプローチにも欠点があります。 これは、多くのファイルがあるため、HTTP接続には長い時間がかかります。 しかし、この問題は最初のダウンロードです。将来、ファイルはキャッシュからダウンロードされます。 解決策はファイルのマージです。 現時点では、これは手動で行うことができますが、将来的に同様の問題を解決するMoff用のCLIを作成する予定です。

PS MoffのBootstrapのモジュラーバージョンは、フレームワークの必要な部分のみをロードしてページサイズを容易にするのに役立ちます。

Source: https://habr.com/ru/post/J271007/


All Articles