iku8blog

Webエンジニアのタダのメモ。

Vue Composition APIでvue router.pushをする

setupの第2引数のcontextから$routerが触れるらしい

<template>
  <div>
    <button @click="move()">Move</button>
  </div>
</template>

<script lang="ts">
import { defineComponent } from '@vue/composition-api'

export default defineComponent({
  setup (props, context) {
    const move = (coordinateId:number) => {
      context.root.$router.push(`coordinates/${coordinateId}`)
    }

    return {
      move
    }
  }
})
</script>

moveという関数を作成して、template内で使用できるようにした例。

他にもcontextからemitやslots、attrsを扱えるらしい。