====== nuxt_vuex_codesandboxメモ ====== 2019年2月時点、CodeSandboxのNuxt.js上で、Vuetify+Vuexをtryしようとしましたが、私の技術ではどうしても 『NuxtServerError Server resources are not available!』 になってしまってうまくいきませんでした。 断片的で意味のない記録になりますが、残しておきます。 ---------------- ===== 19.Nuxt.jsで画像一覧アプリ ===== 今回は、Vue.jsのフレームワークNuxt.jsを用いて、画像一覧アプリを作成したいと思います。 サーバー側は、あらかじめ用意されているものを用います。 以下のサイトを写経してみたいと思います。 https://luftgarden.work/tut-nuxt-dog-part1/ {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-182442.png}} ===== 方針をたてる ===== -サーバーサイドは、https://dog.ceo/dog-api/ を利用します -サーバーから犬の種類のリストを取得して表示 -特定の犬種をクリックすると、その犬種の画像のリストを取得して表示 -画像をクリックするとモーダルウィンドウで拡大表示 -いいねボタン(クリックでカウントアップ)を表示 https://dog.ceo/dog-api/ {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-182748.png}} 今回は、以下のコードを参考にさせていただきました。 https://luftgarden.work/tut-nuxt-dog-part1/ ソースコード https://codesandbox.io/s/y00qv4x7n9 作成中 できたもの デモサイト ===== 0.用意するもの(開発環境) ===== パソコン Chrome(くろーむ、WEBブラウザの一つ) GitHubアカウント作成済み(無料) Googleアカウント作成済み(無料) パソコンは、Windowsパソコンでも、Macでも、かまいませんが、私の場合はWindows 10 Proとなります。 今回利用するもの CodeSandbox Vue 2.5.2 Nuxt.js Vuetify https://dog.ceo/dog-api/ ===== Codesandboxで新規Nuxt.jsアプリの作成 ===== *[[https://codesandbox.io/|CodeSandbox]]でNuxt.jsアプリを新規作成 {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-190712.png}} {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-190824.png}} *Nuxt.jsも2クリックで開発環境が整いました。 {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-190920.png}} ===== CodesandboxのNuxt.jsアプリに@nuxtjs/vuetifyを導入 ===== Vue.jsでvuetifyを利用するためには、vuetifyをインストールしましたが、Nuxt.jsでvuetifyを利用するためには、@nuxtjs/vuetifyをインストールし、さらに、nuxt.config.jsファイルのmodulesに、@nuxtjs/vuetifyを追加します。 *画面左側を、下方向へ行きます {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-191234.png}} *Add Dependency をクリック {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-191307.png}} *nuxtjs/vuetifyと入力して、一覧に表示される@nuxtjs/vuetify(vuetifyではないことに注意)をクリックしてインストール {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-212600.png}} *だいぶ時間がかかります。(ときどき、Bad Gatewayと表示されて、先に進めなくなることもあります。そんなときは、Create Sandboxからやり直したりしますが、どのような条件でBad Gatewayになるのか私にはわかりません。。。) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-212838.png}} *nuxt.config.jsファイルのmodulesに、@nuxtjs/vuetifyを追加します。 (変更前) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-213005.png}} (変更後) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-213135.png}} *layouts/default.vueの変更 (変更前) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-223723.png}} (変更後) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-224037.png}} 参考:https://qiita.com/munieru_jp/items/882727bb493c8502aea1 @munieru_jp 2018年12月01日に更新 Nuxt.jsのプロジェクトにVuetify.jsを導入する方法 ===== pages/index.vueとlayouts/default.vueの編集 ===== layouts/default.vueのの中身を、pages/index.vueへ移動します。 pages/index.vue (変更後) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-230141.png}} layouts/default.vue (変更後) {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-230303.png}} ===== 犬種リストをDog APIで取得する ===== 以下の3つの流れで実装します。(引用元:https://luftgarden.work/tut-nuxt-dog-part1/) -Dog API用のクラスを作成 -ページからAPIのエンドポイントを叩く -取得した犬種リストをストアに保存 ==== Dog API用のクラスを作成 ==== *apiフォルダを作成 {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-230845.png}} *api/dog.js ファイルを作成 {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-231018.png}} *[[https://luftgarden.work/tut-nuxt-dog-part1/|こちらのサイト]]のapi/dog.js をコピペする {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-231555.png}} ==== 犬種リストを保存するストアを作成 ==== *store/ フォルダ内にindex.js を作成し、これまた、[[https://luftgarden.work/tut-nuxt-dog-part1/|こちらのサイト]]のstore/index.js をコピペします {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-232206.png}} *ページ側で fetch() メソッドを定義し、ストアにデータコミット...と、[[https://luftgarden.work/tut-nuxt-dog-part1/|こちらのサイト]]に記載してあるのですが、個人的にはVuex、まだ全然わかりません。とりあえずpages/index.vueを写経して次に進みます。 {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-232759.png}} ==== 画面上に犬種リストを表示する ==== 「Vuexの mapStateヘルパーを使うことで、ストアからデータを取り出す」らしいのですが、これまたさっぱり、、、とりあえず、とにかく、[[https://luftgarden.work/tut-nuxt-dog-part1/|こちらのサイト]]のpages/index.vueを写経します。 pages/index.vue {{:14.nuxt.jsで画像一覧アプリ:pasted:20190114-000728.png}} TypeError Cannot read property 'commit' of undefined と出てしまい、先に進めず。。。 途中 ===== Nuxt.jsに関するリンク ===== https://speakerdeck.com/mahm/vue-dot-jsdezuo-rusingurupeziapurikesiyon-vue-dot-js-nuxt-dot-js-vuetify {{:14.nuxt.jsで画像一覧アプリ:pasted:20190113-214433.png}} https://qiita.com/nunulk/items/0d50ac8cf7e16287f915 @nunulk 2018年03月25日に更新 はじめての Nuxt.js + Vuex + axios https://poridiet.com/nuxtaxiosvuex/ Nuxt.jsでaxiosとvuexを使ってみる 2018年11月27日 https://tech.libinc.co.jp/entry/2018/11/15/143000 2018-11-15 真のフロントエンドエンジニアになるために、まずはNuxt.js + Firebaseを使って簡易メモ帳を作ってみた →非常に説明が丁寧です。かっこよくて使いやすいMarkdownエディタを作成することができます。Nuxt.jsとElemext-UI、Firebaseを用いています。後で写経してみたいです。(唯一の難点は、CSSが何百行もあるので、私には真似ができないです、、、) https://tech.libinc.co.jp/entry/2018/12/10/181913 2018-12-10 入社2か月間で駆け出しエンジニアがつまずいた15のポイント →非常に参考になります。 https://qiita.com/_takeshi_24/items/3ee051e1db1b3e8da106 @_takeshi_24 2018年10月28日に更新 Nuxt v2とFirebase(CloudFirestore)でPWA対応Webアプリ開発 https://inside.dmm.com/entry/2018/11/06/nuxt2-pwa-gae-se 2018-11-06 Nuxt.js v2とGAE/SE Node.jsでSPA×SSR×PWA×サーバーレスを実現する https://codesandbox.io/s/github/manniL/nuxt-decouple-and-organize-api-calls/tree/master/?from-embed https://webxreal.com/js_nuxt-axios-asyncdata/ Vue.js/Nuxt.jsでHTTP非同期通信axios/asyncDataを使ってみる 2018/9/23 https://rara-world.com/nuxt-js-tutorial-vue/ https://blog.uryo.net/%E6%97%A5%E5%B8%B8/cjo4dza6a000k45k3c74bywuv/ Vue.js + Nuxt.js + Vuetify + PWA + Firebaseで家計簿アプリを作ってみた 2018-10-24 ===== Vuexに関するリンク ===== https://qiita.com/terraphic/items/078dfbadcd75ad336ed4 @terraphic 2018年08月15日に投稿 Vuexで状態管理の大事さを知る https://qiita.com/MasahiroHarada/items/2597bd6973a45f92e1e8 @MasahiroHarada 2019年01月14日に更新 Vue + Vue Router + Vuex + Laravel チュートリアル(全16回)を書きました。 →これを写経してみたい! ===== ソースコード ===== 作成中 ===== リンク ===== 目次:[[:index.html|このサイトについて]] 前: 次: