JSライブラリを1日1つ紹介する
1日1つJSのライブラリを調べる、第3弾です。
① ライブラリに関するドキュメントを最初から最後まで読む
② 実際に使ってみる or 使い方を調べる
③ ライブラリを3行で説明する
本日は、bootstrapのドキュメントを読んで実際に業務で使っているところを調べました。
上司や先輩たちからたくさんのフィードバックをいただけてとても勉強になって感謝しかないです...!!😭 昨日からブログに追記するようにしました!!
いい職場すぎて感謝しかないです。。。
ドキュメント
今回読んだドキュメントはこちらです。
実際に使ってみる
それでは早速ローカルで簡単に動かしてみましょう!
簡単にとか格好つけてますが、いつもRailsでサクサクやっていたので結構ハマりました笑
今回はこちらのモーダルを表示させてみたいと思います。
今回はnpmを使います。
mkdir bootstrap //適当にbootstrapのディレクトリを作る
cd bootstrap
npm install bootstrap@4.0.0-beta
npm install jquery
npm install popper.js --save
これで準備完了です。
あとは、index.htmlを作成して、bootstrapとjqueryとpopper.jsを読み込み、モーダルのコンポーネントを貼り付けます。(ブログでコード上手く貼れなかったのでスクショですみません...)
ボタンを押したらモーダルが表示されました。
わからなかったところ
会社のpackage-lock.jsonにはjQueryとpopper.jsは読み込まれてないのに、ローカルで試すときはこれを導入しないと動きませんでした。
何か別のライブラリが代わりにやってくれているのでしょうか?😭
あと今日もう少し時間があったらモーダルのJSのコード読みたいと思います!
3行でまとめる
bootstrapを導入すると、
- 簡単にモーダルなどの綺麗なコンポーネントが使えるようになる
- CSSなども使えるようになる
(今日も2行...許してください)
フィードバック
参考となる記事とともに、今回もたくさんのフィードバックをいただきました...!!!
ありがとうございます!!
- なぜjQueryとpopper.jsが読み込まれていないのに動作するのかというと、reactstrapというライブラリを使用しているから。これはbootstrapのCSSしか使わない。
Adding Bootstrap
Install reactstrap and Bootstrap from NPM. Reactstrap does not include Bootstrap CSS so this needs to be installed as well:
npm install --save bootstrap npm install --save reactstrap react react-dom
↑ boostrapのCSSは含まれていないから、使いたかったらインストールしてねって書いてある!
- CSSimportのときに"~ (チルダ)" を使っているのはnode_modules 内のCSSを参照するため。
css3 - What does a `~` tilde in a CSS `url()` do? - Stack Overflow
- 今日あまりjQueryがみられなくなったのは、DOM APIの差分を吸収する必要がなくなったのが理由として大きい。jQuery自体非常に大きくて遅いライブラリのため、Bootstrapもv5でjQueryを捨てようとしている。
v5 without jQuery by Johann-S · Pull Request #23586 · twbs/bootstrap · GitHub
2019年になってもまだjQueryを使用している理由 | コリス
↑なるほどjQueryだと便利なヘルパーを利用できるからという側面もあるのですね〜
- jQuery開発者のブログ。John Resigは浮世絵好き。
John Resig - Write Code Every Day
↑この記事では、John Resigさんが今まで仕事以外のプロジェクトを週末や夜に行なっていたのを、毎日夜中以外にやると決めたことで色々上手くいったよ、という話が書いてありました!
- CSS設計論については諸説あるが、Bootstrapの時代からBEMを経て今はCSS Modulesが主流となっている。
BEMによるフロントエンドの設計 - 基本概念とルール | CodeGrid
↑ BEMとは、Block、Element、Modifierという3つの概念があるフロントエンドの設計方法のことです。
↑ buttonとかのパーツの名前はファイル名に書く。必要なCSS モジュールだけimportして使う。という考え方みたいですね!確かに、全ページでCSSが共有されているプロジェクトやページごとにCSSが設定されているプロジェクトはつらかったことを思い出しました。
以上です!