2022.06.08

【Vue.js】動的ルートマッチングで他データの受け渡しもしようとしたら嵌った

さとうまなみ

結論

から申しますと、動的ルートマッチングができる+他データの受け渡しもできるやり方で辿り着いたのは以下でした。

// App.vue

<template>
  <div @click="increment">できた</div>
</template>

<script>
export default {
  //略
  methods:{
    increment(){
      this.$router.push({
        name: "About",
        params: {
          id: 0,
          sendData: "test",
        },
        props: true,
      });
    }
  }
}
</script>
// index.js

const routes = [
  {
    path: /About:id,
    name: "About",
    component: About,
    props: (route) => ({
      id: Number(route.params.id),
      sendData: String(route.params.sendData),
    }),
  },
];

どこで躓いたのか

動的ルートマッチングのやり方は調べればすぐに出てきましたが、加えて他データをURLに記載せずに受け渡すやり方になかなか辿り着けていませんでした。過去の僕が採用していた方法は以下です。

// App.vue

<router-link :to="{name:'About', params:{ sendData: "test" }}">
  テスト
<router-link>

この要領ならば動的ルートマッチング方式に変更してもいけるやろ!と思い、この度適当に書いたのがこちらでした。

// App.vue

<router-link :to="{path: `/${動的なデータ}`, name:'About', params:{ sendData: "test" }}")>
  できない…
<router-link>

できませんでした。
結果、辿り着いたのが初めに記載した方法です。
他にもっといい手段があるんだろうか、、

  • Vue.js

さとうまなみ

フロントエンドと写真が好きなアイドルおたく

トップページへ戻る

こちらの記事もおすすめ

【ロゴタイプ初心者向け】おさえておきたいポイント3つのサムネイル

2022.06.08

【ロゴタイプ初心者向け】おさえておきたいポイント3つ

さとうまなみ

MacBook に入れた方が良いアプリ 23選のサムネイル

2022.08.02

MacBook に入れた方が良いアプリ 23選

おかざきるい

初心者がフロントエンドエンジニアとして全国2位になれた勉強法のサムネイル

2022.06.15

初心者がフロントエンドエンジニアとして全国2位になれた勉強法

おかざきるい