デフォルトの構成
フォルダ名などは基本的にこのまま使う。
(他のバックエンドフレームワークと同様)
layouts
ここが全体レイアウトになる
<nuxt>
のところに追加したりすれば、全ページ共通で使いたいコンポーネントを差し込んだりもできる
記事のページをつくる
idをとって表示させたいときは
こんな感じで pages/pages
の下に _
をつけてファイルを作る。
_
の後ろの名前(この場合id
)がパラメータとなる。
idを取得したい
$route.params.id
とすれば取得できる
<p>post id: {{$route.params.id}}</p>
データについて
基本的にデータはコンポーネントに持たせるのでどんどん扱いにくくなる。
Vuex
コンポーネントでもっていたデータを「ストア」という形でまとめて持つことができ、コンポーネントはそのまとめてあったデータを読み込みに行くだけでよいので高速かつ扱いやすくなる
state/mutataions/actions
state
コンポーネントで使用するデータ
mutations
stateを変化させるための同期関数。
シンプルな変更処理だけを書くべきで、「APIを叩いてデータをとってくる」などはactionsに書くべき。
actions
実際に非同期処理などを用いてデータを変更する関数
axios
APIを叩くライブラリ