【Vue.js】ルーティング時に遷移先のコンポーネントにprops経由で値を渡す

Vue.jsでルーティング(this.$router.push())する際に、遷移先のコンポーネントにprops経由でデータを渡す方法を説明します。

Keywords

  • Vue.js

Contents

  • 1. ルーティング
  • 2. ルーティング処理の記述
  • 3. ListComp

ルーティング

ルートに名前をつけます。ここではListという名前をつけています。また、propsを有効にしています。

{   
  path: "/list",
  component: ListComp,
  name: "List",
  props: true
},

ルーティング処理の記述

先程つけた名前のルートに遷移する処理です。{message: "テスト"}を指定しています。

this.$router.push({name: 'List', params: {message: "テスト"}})

ListComp

messageというpropsを受け取れるようにしています。このコンポーネントを直接開いた場合は、v-ifはfalseになり、何も表示されませんが、上記のようにthis.$router.push({name: 'List', params: {message: "テスト"}})のように遷移してきた場合は、messageに指定した文字列が表示されます。ここでは「テスト」と表示されます。

<template>
  <div>
    <div v-if="message != undefined">{{message}}</div>

  </div>
</template>

<script>
  export default {
    props: ['message'],
    data() {
      return {
    
      }
    }
  }
</script>

<style lang="scss">

</style>