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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

3972閲覧

Laravel + Vue でSPAじゃない場合の構成と書き方

yappi_tengen

総合スコア23

Vue.js

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/10/22 02:02

編集2018/10/22 02:05

最近、Vueを勉強し始めた初心者(猫本で勉強中)なのですが、Laravel5.7の環境でVueを使用しています。
バックエンドとフロントは分業で、SPAではなく各ページに対応したbladeにvueのコンポーネントを置いています。
ディレクトリ構成や処理/ファイルのまとめ方などが探しても中々見つからなくご教示頂きたく質問させて頂きました。

現在の構成はこんな感じなのですが、何がよくて何が間違っているのかわからない状況です。

resources
├ js/
| ├ components/
|  └ page/
| ├Hoge.vue
| └Top.vue
| └ app.js
├ lang/
├ sass/
└ views/
| ├ hoge/
| └ hoge.blade.php
└ top.blade.php

■app.js

require('./bootstrap'); window.Vue = require('vue'); /*************************** page ***************************/ Vue.component('top', require('./components/page/Top.vue')); Vue.component('hoge', require('./components/page/Hoge.vue')); const top = new Vue({ el: '#top' });

■top.blade.php

<!doctype html> <html lang="{{ app()->getLocale() }}"> <head> <meta charset="utf-8"> <meta name="description" content=""> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="csrf-token" content="{{ csrf_token() }}"> <title></title> <link rel="stylesheet" href="{{ mix('/css/app.css') }}"> </head> <body> <div id="top"> <top></top> </div> <script src=" {{ mix('js/app.js') }} "></script> </body> </html>

■Top.vue

<template> <div class="l-wrap"> <hoge></hoge> </div> </template> <script> module.exports = { data() { return { } } } </script>

また、laravel側とのデータ受け渡しをする際は、各vueファイルに処理を記載すればいいのでしょうか?
何卒、よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

.vueファイルはそのままでは実行できないのでWebpack や Browserify のビルドツールでトランスパイルしたもの(app.js)をブラウザでアクセスできる場所にページ毎に配置するのではないかと思います。

トランスパイルされたものをどこのフォルダに配置するのかは、WebpackやBrowserifyの設定ファイルで指定します。

投稿2018/10/24 17:07

euledge

総合スコア2404

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

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

yappi_tengen

2018/10/26 03:50

ベースはlaravelなので、そのままvueを使用しています。
euledge

2018/10/26 04:06

laravel mixに同梱されているwebpackに設定はあるので.vueファイルの置き場所はそこに指定された箇所になりますね。 >laravel側とのデータ受け渡しをする際は、各vueファイルに処理を記載すればいいのでしょうか? vueのmethodの中でaxiosなどを使ってajaxでデータ取得したものをvueのdataにセットするようなイメージですね。 ページの遷移したレンダリング直後のものであれば phpの変数の埋め込みでも可能かもしれませんが、データ受け渡しはajaxでまとめたほうがいいと思います。
yappi_tengen

2018/10/26 04:09

ありがとうございます! BEとも相談して進めてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問