[vue.js] router.jsで登録したpathをnameから取得する(遷移させない)

バージョン

Vue.js 2.6.10

概要

pushを使えば遷移できるが、今回はパスだけ取得したいケース。
resolveを使えばパスを取得できる。URLパラメータのある場合もOK。

コード

◾️router.js

        {
          path: "/user/list",
          name: "userlist",
          component: () => import("./views/user/UserList.vue")
        },
        {
          path: "/user/new/:userid",
          name: "usernew",
          component: () => import("./views/user/new.vue")
        },

◾️hoge.vue

<script>
export default {
    methods: {
        getPath : function () {
            let path_a = this.$router.resolve({ name: "userlist" }).href;   // =>/user/list
            let path_b = this.$router.resolve({ name: "usernew", params: {userid: "abc"} }).href;   // =>/user/new/abc

            // フルパスを取得したい場合
            let mail_path = location.origin + path_b ;

        }
    }
};
</script>

注意事項:URLパラメータに空値を渡せない(空値を渡すと「/」が返ってくる)