Laravel 5 и Vue JS пустая страница - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь использовать Vue JS в своем приложении Laravel 5, оно дает мне пустую страницу, когда я использовал v-

            new Vue({
                el: '#vApp',
                data: {
                    todos: [
                        { text: 'Learn JavaScript' },
                        { text: 'Learn Vue' },
                        { text: 'Build something awesome' }
                      ],
                      message: "Welcome"
                  },
                delimiters: ["%%","%%"]
            });

, если я просто распечатываю сообщение вСтраница просмотра лезвия работает хорошо

<div id="vApp">%% message %%</div>

Когда я пытаюсь использовать

 <li v-for="todo in todos">
      %% todo.text %%
 </li>

или

  <input v-model="message">

, это дает мне пустую страницу

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Сборка по умолчанию, экспортируемая пакетом NPM, является сборкой только во время выполнения.Это не приносит компилятор шаблона.Поэтому вам нужно будет либо импортировать полную версию сборки vue в свой javascript, либо создать псевдоним веб-пакета (если вы используете веб-пакет).

Эта проблема не возникнет, когда вы определяете шаблоны с помощью функции рендеринга илиКомпонент с одним файлом.

ПРИМЕЧАНИЕ:

Вам не нужно babel-loader, если вы не ожидаете поддержки старых браузеров и если вы не используете новейшие функции ES и вам не понадобится vue-loader если вы не используете однофайловые компоненты.

Также обратите внимание, что вы должны включить метатег в ваш HTML <meta charset="utf-8">

Это будет работать -

// webpack
module.exports = {
  mode: "production",
  entry: ["./app.js"],
  output: { filename: "./app.min.js" },
  resolve: { alias: { vue: "vue/dist/vue.js" } },
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: "babel-loader"
      },
      {
        test: /\.vue$/,
        use: "vue-loader"
      }
    ]
  }
};
// app.js

import Vue from "vue";
// import Vue from 'vue/dist/vue.js';

window.app = new Vue({
  el: "#app",
  data: {
    todos: [
      { text: "Learn JavaScript" },
      { text: "Learn Vue" },
      { text: "Build something awesome" }
    ],
    message: "Welcome"
  },
  delimiters: ["%%", "%%"]
});

<!-- index.html -->

<html>
<head>
    <meta charset="utf-8">
</head>
<body>
<div id="app">
    <p>%% message %%</p>
    <li v-for="todo in todos">
        %% todo.text %%
    </li>
    <input v-model="message">
</div>
<script src="app.min.js"></script>
</body>
</html>
0 голосов
/ 04 декабря 2018

Вы завернули содержимое с помощью vApp?Как это:

<div id="vApp">
    <li v-for="todo in todos">
        %% todo.text %%
    </li>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...