Vue.jsの小ネタです。
これはこんな風にも書けるよ、というお話です 
Routerを含んだSPAを開発する際、以下のような記述をすることがあると思います。
Vueコンポーネント
created () {
this.fetchData()
},
watch: {
$route () {
this.fetchData()
}
}
fetchData はページごとに必要なデータを取得する(そしておそらく data のプロパティに代入する)メソッドだと思ってください。コンポーネントが初期化される時にデータを取得したいので created で fetchData を呼び出します。さらに、$route の値を watch して変更があったタイミングでも fetchData を呼び出さなくてはなりません。
というのも、例えば /posts/123 から /posts/987 に遷移したとき、つまり遷移先も同じコンポーネントである場合は、Vueの内部ではインスタンスをなるべく使いまわそうとするので created が呼ばれないのです。$route の値を watch しないと、URLは変わっているのにデータが変わらない状態になってしまうのですね。
さて、上記のコードは以下のように書き換えられます。
Vueコンポーネント
watch: {
$route: {
handler: 'fetchData',
immediate: true
}
}
ちょっとスッキリしました 
watch の値はオブジェクトを取ることもできます。その場合、handler に関数を指定するのですが、関数の指定は関数名(文字列)でも構いません。そして immediate を true にすると、handler に指定した関数がすぐに実行されます。つまり created で呼び出すのと同じことになるわけです。
マニュアル
https://jp.vuejs.org/v2/api/index.html#vm-watch
以上です。

