フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

Vue3 + Typescriptでコンポーネントを作成する

はじめに

  • TypescriptとVue3の環境を作成したので、Typescriptのclassを利用して簡単なコンポーネントを作成する

[Vue v3] @ComponentデコレータとVue基本クラス

  • @Component名前がに変更され@Optionsます。
  • @Options オプションを宣言しない場合はオプションです。
  • Vueコンストラクターはvue-class-componentパッケージから提供されます。
  • Component.registerHooksはVue.registerHooksに移行する

github.com

コード

<template>
  <div>{{ count }}</div>
  <button @click="increment">+1</button>
</template>

<script>
import { Vue,Options } from 'vue-class-component'

@Options({
  // Define component options
  watch: {
    count: value => {
      console.log(`watch! ${value}`)
    }
  },
  computed: {
    count: () => {
      console.log(`watch! ${this.count}`)
    }
  }
})

export default class Counter extends Vue {
  count = 0

  increment() {
    this.count++
  }
}
</script>

補足

デコレータとは

デコレータとはクラスの宣言などにアタッチできる特別な宣言です。(引用) qiita.com

デコレータ使わない Vue.js + TypeScript で進んだ「LINEのお年玉」キャンペーン(面白い記事)

engineering.linecorp.com