Nuxt Composition API 使ってみた2021年9月17日 v-okinawa株式会社 M&Aクラウド 津崎 善昭
View Slide
自己紹介津崎 善昭(つざき よしあき)Twitter: @820zacky趣味:たまにキャンプ、たまに筋トレ(サボり中)得意: 資格勉強セキュリティスペシャリスト,ネットワークスペシャリスト,データベーススペシャリストSIer -> Web制作会社 -> Webベンチャーフロントエンド入門中
※北海道出身だけどいじめないでください
Composition API とは?Vue.jsのコンポーネントをいい感じに書く手法2020年9月にリリースされたVue 3にて導入された標準の書き方はOptions APIというコンポーネントからロジックを分離し、再利用可能にする大規模・複雑なコンポーネントを作る時に便利
Nuxt.jsでComposition APIを使う2つのやり方@vue/composition-apiと @nuxtjs/comopsition-api
ふたつのやり方と言ったな? あれは嘘だ-> Nuxt3が10/12にリリースになりましたhttps://nuxtjs.org/ja/v3/もうどちらもいらない!
最初から入ってる
@vue/composition-api従来のやり方Vueの純正composition-apiM&Aクラウドが使っているのはこれSSRとCSRで値をハイドレーションできない問題があり困った(https://speakerdeck.com/kubotak/nuxt-dot-jsdecompositionapiwoshi-u?slide=16)弊社ではVuexストアを使って値を共有している
@nuxtjs/comopsition-api= Nuxt Composition API新しいやり方nuxt-communityが提供しているNuxt 3 のための実験的なものNuxt 3 ではメソッド名がかわるかもしれないNuxt固有の機能を使える弊社もこちらへの意向を検討中
Nuxt Composition API@vue/composition-apiの機能に加えてNuxt固有の機能を提供しているuseMeta : Metaタグの情報にアクセスするメソッドuseAsync : NuxtのAsyncDataフックを使うメソッドuseFetch : NuxtのFetchフックを使うメソッドなどreqRef, reqSsrRef, ssrRefなど新しい概念も登場している(まだよくわかってないがSSRとCSRで値を共有する方法っぽい)
なぜComposition APIなのか
処理をまとめられる
(無理矢理拡大した図)data()内にいろんな関心事の変数が定義されている
関心事ごとに変数を用意できる
ロジックを抽出して再利用ref, reactiveなどのリアクティブな値を作成するメソッドや、onMountedなどのコールバック登録するメソッドなど、細かく機能が分割されているため、共通化したいロジックや肥大化したロジックを別ファイルに移することができる。Options APIではMixinというTrait的なやり方でしか分離できず、再利用性が悪かった
Nuxt Composition APIの開発環境を作る
Nuxtインストールyarn create nuxt-app sample-app言語はTypeScriptを選択するComposition APIを導入するyarn add @nuxtjs/composition-api今回は新しいやりかたである@nuxtjs/composition-apiを試してみる
nuxt.config.jsを編集する{buildModules: ['@nuxt/typescript-build',+ '@nuxtjs/composition-api/module']}
サーバーを起動するyarn devlocalhost:3000でサイトが起動する
サンプルコードhttps://qiita.com/zackey2/items/8a2675c14d73e91267fe
まとめNuxt3 10/12リリース予定Nuxt3 では最初から Composition APIが使えます!