class componentは非推奨になったわけではなくて今後も使えるそうですが、
TypeScriptで書く場合にVolarの恩恵を最大限受けるために、Composition APIのスタイルに書き換えました。
ついでにscript setupにもしています。
Composition APIへの書き換え
参考: From vue-class-component to Composition API | by Giacomo Voß | Level Up Coding
概観
vue-class-component(vue-property-decorator) で書かれたVueコンポーネントをscript setupに書き換えると以下のようになります。
以下個別に見ていきます。
@Component
class component
script setup
import文を書くだけでコンポーネントを使用できるようになりました。
Data
class component
script setup
ref
で宣言することでreactiveな値として使用できるようになります。
値にアクセスするには .value
をつける必要があります。
@Prop
class component
script setup
独自型もきちんと型を付けられるようになり、コンポーネントを利用する側でも補完が効くようになります。
@Emit
class component
script setup
@Watch
class component
script setup
@Ref
class component
script setup
同じ変数名のrefで宣言するだけで参照できるようになりました
Computed
class component
script setup
Hooks
class component
script setup
ライフサイクルフックの変更はこちらを参照
ライフサイクルフック | Vue.js
- setup は beforeCreate と created のライフサイクルで実行されるため、これらのフック内で実行していたコードはsetup内に直接書く
- mounted → onMounted のように、onXXXXXという名前に変わった
モジュールやライブラリの移行