laravel - laravel vue js组件无法编译
问题描述
我是 laravel-VUE 的新手,正在学习中。将不胜感激任何帮助。Laravel 自带 VUE,所有的 Vue 组件都注册在一个 app.js 文件中,如下所示:
require('./bootstrap');
window.Vue = require('vue');
Vue.component('apnavbar-component', require('./components/APnavbarComponent.vue'));
Vue.component('group-component', require('./components/GroupComponent.vue'));
Vue.component('product-component', require('./components/ProductComponent.vue'));
const app = new Vue({
el: '#app',
});
在 home.blade.php 我有这个:
@extends('layouts.app')
@section('content')
<apnavbar-component></apnavbar-component>
<group-component></group-component>
<product-component></product-component>
@endsection
在 APnavbarComponent.vue 我有这个:
<template>
<h1>ap navbar component</h1>
<h3>{{ message }}</h3>
</template>
<script>
export default {
data() {
return {
message: 'test message'
}
},
mounted() {
console.log("apnavbarcomponent mounted");
}
}
</script>
这是 npm run watch 控制台中显示的错误消息:
ERROR in ./node_modules/vue-loader/lib/template-compiler?
{"id":"data-v-b62d55fa","hasScoped":false,"buble":
{"transforms":{}}}!./node_modules/vue-loader/lib/selector.js?
type=template&index=0!./resources/js/components/APnavbarComponent.vue
(Emitted value instead of an instance of Error)
Error compiling template:
<h1>ap navbar component</h1>
{ message }
- text "{ message }" outside root element will be ignored.
npm 无法编译它,当我删除 {{ message }} 时,它会编译,当我尝试 console.log 消息时,npm 无法再次编译。为什么会这样?感谢任何帮助。
解决方案
Vue 内部只能有 1 个根元素<template>
https://vuejsdevelopers.com/2018/09/11/vue-multiple-root-fragments/
通常,您将通过添加“包装器”div 作为父级来解决此问题。此包装器元素没有显示目的,它只是在那里,因此您的模板符合单根要求。
推荐阅读
- python-3.x - 如何在张量流中将单个神经元的输出转换为 0 和 1 类
- javascript - 如何删除元素父级的下一个 div?
- c - 在没有 & 运算符的情况下初始化指向数组的指针?
- html - 无法在 Angular 6 中更改标签的高度和颜色
- python - 在 tkinter 中获取用户输入失败
- android - 从 Android Auto 获取某些信息
- python - 使用 Django Signals post_save 错误“save() 禁止以防止数据丢失做 unsave 相关对象 ''myModel.”
- php - PHP - 防止用户玩弄 url GET 变量
- python - 尝试读取大型网站文件数据时出现 MemoryError 异常
- c# - 如何在 EMGUCV 中使用 Facemarker?