@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

Vue 2から3になって気づいたこと

ちょっと書き始めて気づいた変更点を少しまとめる。

テンプレートのルート要素が不要になった。

Vue 2ではtemplate直下の要素は1つしか許されなかった

<template>
  <div>
    <h1>title</h1>
    <p>some content</p>
  </div>
</template>

Vue 3ではこれでも良い

<template>
  <h1>title</h1>
  <p>some content</p>
</template>

ライフサイクル関連のものは明示的にimportする必要がある

Vue 2のこの図

https://vuejs.org/images/lifecycle.png

The Vue Instance — Vue.js

例えばマウント時の処理はここにそのまま書けた

export default {
  mounted(){
    // ここに記述する
    console.log('mounted!')
  }
}

Vue 3ではimportして、setupに入れる

Composition API | Vue.js

import { onMounted } from 'vue'

export default {
  setup() {
    onMounted(() => {
      // ここに記述する
      console.log('mounted!')
    })
  }
}