Vue.js(typescript)で$routerが使えない!ってなった時の話

前提

router周りの導入、typescriptで書いているなどを想定して書いています。その辺りは省略して書きます。

事象

vue.jsでtypescriptを使って$routerでページ遷移させる処理を書いているときにはまった部分です。

下記のように書いて実行したいのにthisでなんか怒られる。routerの読み込みとかは問題なさそうなのに。。。引数はあってもなくてもどちらでも大丈夫です。

function clickMove(event: any): void {
   this.$router.push({name: "About"})
}

結論

無名関数で書きましょう

単純でした。typescriptでthisを書く際は無名関数を使うというところです。

function clickMove(event: any): void {} 
上記を下記に変更
const clickMove = (event: any) => {}

結構はまってしまっていました。もっと早く疑うべきでした。詳しいことは参考をみてください

以上!