質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

Q&A

0回答

1555閲覧

[VUE.JS]VUE ROUTERでのデータの受け渡しの方法を教えて欲しい(vutify使用)

arcu

総合スコア4

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

0グッド

0クリップ

投稿2020/11/14 06:47

編集2020/11/15 12:24

前提・実現したいこと

実装方法の話になるのですが、Vue.jsのコンポーネント間ではなく、vue-routerで設定した違うルートで表示されるページ(非親子)にデータを渡したい時の方法についてご教授いただきたいです。

具体的には、Contentコンポーネントのタイトルやサブタイトル、画像などの情報を遷移先のContentDetailコンポーネントに渡したいと思っています。しかし、ContentDetailコンポーネントはContentコンポーネントの子コンポーネントではなく、かつ、vuetifyのコンポーネントを使っており、propsを渡すタイミングや方法が不明と言う状況です。
初心者のため、検討違いな実装となっている可能性がありますが、ご教授いただけますと幸いです。

該当のソースコード

Content.vue
※:to="{ name: 'detailPage' }"の記述でContentDetailコンポーネントに遷移する設定をしています。(vuetifyの設定方法)

vue

1<template> 2 <v-card 3 class="v-card mx-auto" 4 max-width="1000" 5 tile 6 :to="{ name: 'detailPage' }" 7 > 8 <v-img src="https://picsum.photos/200" height="200px"> 9 <div class="fill-height bottom-gradient"></div> 10 </v-img> 11 <v-card-title> 12 Top western road trips 13 </v-card-title> 14 <v-card-subtitle> 15 1,000 miles of wonder 16 </v-card-subtitle> 17 </v-card> 18</template>

Home.vue

vue

1<template> 2 <v-app dark> 3 <Header /> 4 <!-- <router-link to="/detail">detail</router-link> --> 5 <router-view></router-view> 6 </v-app> 7</template> 8 9<script> 10import Header from "./components/Header.vue"; 11 12export default { 13 components: { Header }, 14}; 15</script>

ContentDetail.vue

<template> <div class="contentdetail"> <v-app> <v-carousel cycle hide-delimiters> <v-carousel-item v-for="(item, i) in items" :key="i" :src="item.src" ></v-carousel-item> </v-carousel> <div class="detailtext"> <h2>タイトル</h2> <p> {{src}} </p> </div> </v-app> </div> </template>

router.js

js

1import Vue from "vue"; 2import Router from "vue-router"; 3import ContentDetail from "@/components/ContentDetail.vue"; 4import Home from "@/components/Home.vue"; 5 6Vue.use(Router); 7 8export default new Router({ 9 mode: "history", 10 routes: [ 11 { 12 path: "/detail", 13 name: "detailPage", 14 component: ContentDetail, 15 }, 16 { 17 path: "/", 18 name: "home", 19 component: Home, 20 }, 21 ], 22}); 23

試したこと

https://forsmile.jp/vue/910/
こちらのサイトの方法を参考にしてみましたが、いまいちやり方がわかない状態です。

補足情報(FW/ツールのバージョンなど)

"core-js": "^3.6.5", "vue": "^2.6.11", "vue-router": "^3.4.9", "vuetify": "^2.2.11"

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問