z_blog:2018:181201_nuxt_bulma_responsive
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| z_blog:2018:181201_nuxt_bulma_responsive [2018/12/02] – [新規Nuxt.jsプロジェクトの作成] adash333 | z_blog:2018:181201_nuxt_bulma_responsive [2018/12/02] (現在) – [ソースコード] adash333 | ||
|---|---|---|---|
| 行 138: | 行 138: | ||
| 参考:https:// | 参考:https:// | ||
| - | {{: | + | {{: |
| 行 147: | 行 147: | ||
| - | ===== リンク ===== | + | ===== ナビゲーションバーのComponentを作成 ===== |
| + | Bulmaフレームワークを利用して、レスポンシブなナビゲーションバーを作成する。 | ||
| + | |||
| + | コンポーネントは、名前の通り、components/ | ||
| + | |||
| + | components/ | ||
| + | {{: | ||
| + | |||
| + | Navbarコンポーネントを、レイアウトファイルに取り付ける。 | ||
| + | |||
| + | 具体的には、 layouts/ | ||
| + | |||
| + | (変更前) | ||
| + | {{: | ||
| + | |||
| + | (変更後) | ||
| + | {{: | ||
| + | |||
| + | あまりカッコヨクナイ、、、 | ||
| + | |||
| + | ブラウザの横幅を広げるとこんな感じになる。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ブラウザの横幅(px, | ||
| + | |||
| + | 参考:[[https:// | ||
| + | |Bulma公式サイトのNavbarの説明]] | ||
| + | {{: | ||
| + | |||
| + | https:// | ||
| + | {{: | ||
| + | |||
| + | Bulmaのtouch deviceとは、横幅が1023px以下とのことだそうです。 | ||
| + | |||
| + | もうちょっと横幅が小さくなってからハンバーガーメニュー出してほしいのだけれど、、、 | ||
| + | |||
| + | https:// | ||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== ハンバーガーメニューをトグル(クリックするとメニューを表示)するようにする ===== | ||
| + | 横幅を狭くしたときに、タイトルと、ハンバーガーメニューが一行におさまりきらない原因は不明であった。。。 | ||
| + | |||
| + | とりあえず次に進む。 | ||
| + | |||
| + | components/ | ||
| + | |||
| + | <div class=" | ||
| + | |||
| + | <div class=" | ||
| + | |||
| + | これで、ブラウザの横幅が1023px以下のときにハンバーガーメニューが出て、それをクリックすると、メニューが表示されるようになった。 | ||
| + | {{: | ||
| + | |||
| + | しかし、この時点では、メニューの中のリンク先をクリックしても、トグルされたメニューが開いたままになってしまって閉じてくれない。 | ||
| + | |||
| + | そこで、Vuexを用いて、リンク先をクリックすると、自動的にトグルが閉じるようにする。 | ||
| + | |||
| + | ===== Vuexストアを設定してトグルONとOFFをstoreに定義 ===== | ||
| + | |||
| + | store/ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | storeに、isMenuActive (True or False)の状態を定義しておいて、 | ||
| + | |||
| + | -ハンバーガーメニューをクリックしたらON、OFF | ||
| + | -リンクをクリックしてページ遷移したらOFF | ||
| + | となるようにしておきます。 | ||
| + | |||
| + | components/ | ||
| + | |||
| + | <div class=" | ||
| + | < | ||
| + | // | ||
| + | @click=" | ||
| + | // | ||
| + | @click=" | ||
| + | </ | ||
| + | |||
| + | <div class=" | ||
| + | < | ||
| + | // | ||
| + | : | ||
| + | // | ||
| + | : | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Vuexの構造についての絵を、以下に貼り付けておく。 | ||
| + | |||
| + | https:// | ||
| + | {{: | ||
| + | |||
| + | データの流れが、Vue Components => Actions => Mutations => State => Vue Components というように一方向らしい。。。 | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | export default { | ||
| + | fetch ({store}) { | ||
| + | store.commit(' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | pages/ | ||
| + | {{: | ||
| + | |||
| + | pages/ | ||
| + | {{: | ||
| + | |||
| + | あれ?store is not defined というNuxt.jsのエラーが出てしまった。 | ||
| + | |||
| + | < | ||
| + | エラーもなかなか見つけにくい。。。(Ionic(Angular)のときは、ChromeでCtrl+Shift+Iでconsole logを見ると、どのファイルの何行目にどのようなエラーがありそうか、けっこう教えてくれる感じであった。) | ||
| + | |||
| + | {{: | ||
| + | |||
| + | pages/ | ||
| + | {{: | ||
| + | |||
| + | まだ行がずれていてかっこ悪いが、これで、なんとか、ハンバーガーメニューが実装できた。 | ||
| + | |||
| + | しかし、ハンバーガーメニューの3本線を「メニュー」という文字にしたり、ボタンにしたりしようとすると、なんだかデザイン的に自分の思うように変更できない。。。 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== NuxtサイトをNetlifyにデプロイ ===== | ||
| + | |||
| + | 公式サイトに書いてあった。 | ||
| + | |||
| + | https:// | ||
| + | {{: | ||
| + | |||
| + | Netlifyでの画面はこんな感じ。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | デプロイ後のサイト | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | ===== ソースコード ===== | ||
| + | https:// | ||
| + | |||
| + | ===== Navbar-brandをNavbar-blandとタイプミスしていた ===== | ||
| + | |||
| + | ハンバーガーメニューがずれていたので、何がおかしいのかずっと分からなかったが、Navbar-brandのタイプミスであった。 | ||
| + | |||
| + | VisualStudioCodeの拡張機能で、Bulmaのタイプミスを指摘してくれるものはないかな??? | ||
| + | |||
| + | components/ | ||
| + | |||
| + | (変更前) | ||
| + | {{: | ||
| + | |||
| + | (変更後) | ||
| + | {{: | ||
| + | |||
| + | これでやっと写経できた。 | ||
| ===== Nuxt.jsでお勧めの本(2018年現在) ===== | ===== Nuxt.jsでお勧めの本(2018年現在) ===== | ||
z_blog/2018/181201_nuxt_bulma_responsive.1543718613.txt.gz · 最終更新: 2018/12/02 by adash333
