了解しました!
それでは教科書スタイルに則り、
次のステップ「3.1 クラス構文 vs Composition API」をしっかり書きます!
この章では、クラスコンポーネントとComposition APIの基本的な思想の違いを整理し、理解を深めます。
クラスコンポーネントでは、**OOP(オブジェクト指向プログラミング)**の考え方をベースに、
デコレーター (@Component
, @Prop
, @Emit
, @Watch
) を使って、コンポーネントをクラス形式で定義します。
import { Vue, Component, Prop, Emit, Watch } from 'vue-property-decorator';
@Component
export default class ExampleComponent extends Vue {
@Prop() readonly title!: string;
dataValue = 0;
@Watch('dataValue')
onValueChange(newVal: number, oldVal: number) {
console.log(newVal, oldVal);
}
@Emit('clicked')
handleClick() {
return this.dataValue;
}
}
項目 | 説明 |
---|---|
OOPスタイルに近い | JavaやC#などのクラスベース言語経験者には馴染みやすい |
デコレーターで宣言的に書ける | @Prop や@Watch などが直感的で読みやすい |
型推論が強力 | TypeScriptと親和性が高い(ただしdecorator依存) |
項目 | 説明 |
---|---|
Vue独自の特殊な書き方 | Vueの標準的なOptions API/Composition APIとは異なる世界観になる |
デコレーター依存 | TypeScriptのデコレーター仕様に依存し、将来の保守が不安定 |
複雑な機能をまたぐとコードの見通しが悪くなる | data/methods/watchersがバラバラに存在し、横断的な機能管理がしづらい |