スマレジエンジニアyushiのブログ

スマレジエンジニアのブログ

【将棋盤 第9回】Composition APIの導入

コツコツ将棋盤を作ってます。

使用技術

  • Vue.js3
  • Vite
  • SCSS

yushi-dev.hatenablog.com

今回はついに、Composition APIの導入です。

製作中の盤はgithub pagesで公開しています。

nek0meshi.github.io

Composition APIとは?

過去にブログを書いていましたので、詳しくはこちらを...。

yushi-dev.hatenablog.com

Composition APIを利用する主なメリットは、ロジックをComponentから切り出し、個別に管理したり複数のComponentで共有できることです。

今回の将棋盤の開発では、、Composition APIを使ってみることが目的の一つでした。ついに...。

また今回は、下記のドキュメント・リポジトリも参考にさせていただきました。

Introduction | Vue.js

Vue 3 Composition API を使ってみよう - Qiita

なぜ、Vue Composition APIを使うのか、理解する【メリット/デメリットまとめ】 - Qiita

GitHub - LinusBorg/composition-api-demos: A Vue.js app demonstarting various use cases for the new composition API

composable/use-game.ts

ロジックを集約したファイルです。

もともとGame.vue, Board.vueに含まれていたロジックを、ひとまず片っ端からこのファイルに移動させました。

https://github.com/nek0meshi/shogi-board/pull/9/files#diff-41aad60af73ad8ef9dca3b6c811c647f3d0119add3582c0645b712da2b493100

thisが使えなくなるので注意が必要です。

画面から直接操作しないproperty/methodは公開(export)しなくてOKです。 これはファイル分割したことによる大きなメリットですね。

Board.vue

<template>はもちろん、JSでも画面表示に特化したロジックは、こちらのファイルに残しています。

https://github.com/nek0meshi/shogi-board/pull/9/files#diff-6c14e039739e7595e71f2aa53e1709630c338e4010a7c1e43d1d36b74a549a77

PR

https://github.com/nek0meshi/shogi-board/pull/9

まとめ

とりあえずザクザク移動してみましたが、これで正解なのかまだよくわかっていないです...。

ロジックを丸々別ファイルにまとめられたので、見通しはよくなりそうかなと思っています。

画面から利用しないproperty/methodは隠せるというのも良い感じです。

今後更に追記編集しながら、ベストプラクティスを見つけていきたいです。

最近はルービックキューブにはまっています(暗記して速く解くやつ)。2分は安定してきたので、目指せ大台1分。