ちら帳

喉元を過ぎると熱さを忘れる自分の為の、ちら裏メモ帳ブログです。

Vue Routerの動的パラメータのバリデーションとか加工とか

公式ドキュメントにちゃんと書いてあるけど、自分が検索に時間かかるのでメモ。

バージョンは2020年6月時点でvue-router@3.0+, vue@2.5+あたりのものなので、古くなっていたら注意。

動的パラメータに正規表現を使う

path-to-regexpを使っているから色々と正規表現が使えるよとのこと。 router.vuejs.org

path-to-regexpのページ。 github.com

Vue Routerによる使用例。 github.com

よくあるのが数字だけ受け付けたいとき。

entry/:id(\\+d)

任意パラメータのときは正規表現の後ろに?をくっつける。

entry/:id(\\+d)?

動的パラメータを加工してコンポーネントに渡す

ルートコンポーネントにプロパティを渡す方法。 router.vuejs.org

例にもあるけど年月日あたりをいじってコンポーネントに渡すのに便利。 github.com

あとは数字のパラメータをNumberにキャストしてからコンポーネントに渡すとか。

const router = new VueRouter({
  routes: [
    { path: '/user/:id', component: User, props: (route) => ({ id: Number(route.params.id) }) }
  ]
})

以上。ねむい。