====== 18.Nuxt.jsとBulmaでハンバーガーメニュー ======
状態管理システムvuexが難しすぎて理解できないので、わかりやすいサイトをひたすら写経して理解しようと努力していくシリーズの5回目。
今回は、[[https://qiita.com/isamusuzuki/items/5ec800e423a3a56ef03d|Nuxt.jsにBulmaを組み込んだら、Vuexストアが理解できた件(20180503更新)]]を写経してみたいと思います。
→最初、CodeSandbox上で行おうと努力しましたが、どうしても、VuetifyやBulma, Font Awesomeのインストールがうまくいかず、ローカル環境で行う方針に変更しました。そのため、環境構築は、面倒なこととなっています。
===== 初めてのVuex目次 =====
[[14.vue.jsのvuexで入力フォーム:index.html|14.vue.jsのvuexで入力フォーム]]
[[15.vue.jsのvuexでカウンター:index.html|15.Vue.jsのvuexでカウンター]]
[[16.vue.jsのvuexでパスワード制限:index.html|16.vue.jsのvuexでパスワード制限]]
[[17.nuxt.jsのvuexでパスワード制限:index.html|17.Nuxt.jsのvuexでパスワード制限]]
[[18.nuxt.jsとbulmaでハンバーガーメニュー:index.html|18.Nuxt.jsとBulmaでハンバーガーメニュー]]
[[19.nuxt.jsで画像一覧アプリ:index.html|19.Nuxt.jsで画像一覧アプリ]]
===== すること =====
-Nuxt.jsのVuexを用いて、Bulmaのレスポンシブなハンバーガーメニューを実装する
今回は、[[https://qiita.com/isamusuzuki/items/5ec800e423a3a56ef03d|Nuxt.jsにBulmaを組み込んだら、Vuexストアが理解できた件(20180503更新)]]を写経させていてだきました。
ソースコード
https://github.com/adash333/Nuxt-Bulma-Hamburger3
スクリーンショット
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-195135.png}}
===== 開発環境 =====
Panasonic CF-RZ4
Window 8.1 Pro
VisualStudioCode
git version 2.17.1.windows.2
node 10.14.1
yarn 1.12.3
===== 新規Nuxt.jsアプリの作成 =====
*VisualStudioCodeのターミナル画面で、以下を入力
yarn create nuxt-app Nuxt-Bulma-Hamburger3
いろいろ聞かれるので、以下のように設定します。
-プロジェクト名は? => (Enter)
-プロジェクトの一言説明は? => (Enter)
-サーバーフレームワークは? => 使わない
-eslintは使う? => PWA supportを入れる(Linterは使わない)
-UIフレームワークは? => bulma
-testフレームワークは? => 使わない
-レンダリングモードは? => ユニバーサルじゃなくてシングルページアプリケーション
-axiosモジュールは使う? => 使わない
-作者名は? => (Enter)
-パッケージマネージャは? => npmじゃなくてyarn
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-152615.png}}
cd Nuxt-Bulma-Hamburger3
yarn run dev
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-152758.png}}
*アドレスをCtrlを押しながらクリックすると、以下のページが開きます。
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-152901.png}}
これで、Nuxt.jsでBulmaを使用する準備が出来ました。
===== インデックスページ以外のページ(about.vueとcontact.vue)を作成 =====
pages/ディレクトリで、about.vueとcontact.vueの新規作成を行う。
pages/about.vue
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-154546.png}}
pages/contact.vue
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-154515.png}}
===== ナビゲーションバーのコンポーネントを作成する =====
components/Navbar.vue
このNavbar.vueを、layouts/default.vue内に表示するようにします。
layouts/default.vue
(変更前)
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-182646.png}}
(変更後)
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-182944.png}}
{{:18.nuxt.jsとbulmaでハンバーガーメニュー:pasted:20190208-183008.png}}
===== ハンバーガーメニューをトグルさせる =====
横幅を狭くすると、画面右上にハンバーガーメニューが出てきますが、それをクリックしても何も起こりません。
isMenuActiveというプロパティとtoggleMenuというメソッドを定義して、ハンバーガーメニューをクリックすると、縦方向にリンクが表示されるようにします。
...
...