【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>