Вложенные однофайловые компоненты - vue.js с электронным кузницей

Я пробую электрон впервые, и я поражен этим. Однако я столкнулся со стеной, когда пытался использовать компоненты одного файла vue.js с использованием электронагревателя. Моя проблема заключается в следующем:

Я создаю проект с использованием шаблона vue.js и запускаю его. Работает и выглядит отлично. У меня есть одна страница файла с индексным файлом, который выглядит так:

<div id="test"></div>
</body>

<script>
import Vue from 'vue';
import Test from './test';

const app = new Vue(Test).$mount('#test');

app.text = "Electron Forge with Vue.js!";

</script>

Все идет нормально. Он импортирует Test, который представляет собой отдельный файловый компонент, и отображает его.

Теперь я хотел бы, чтобы другие компоненты одного файла были вложены в этот основной компонент. Например, я хотел бы иметь следующее, в моем файле приложения с именем test.vue

<template>
<h2>Hello from {{text}}</h2>
</template>

<script>
import About from './About.vue'

export default {
components: {
          appAbout: About,
      },
data () {
  return {
     text: 'Electron'
  }
}
}
</script>

Опять же, пока все хорошо. Я могу запустить приложение без ошибок, поэтому компонент импортируется.

Здесь возникает моя проблема: если я сейчас пытаюсь визуализировать компонент с помощью <appAbout></appAbout>, как я делал раньше в веб-приложениях с vue.js, я получаю следующую ошибку.

скриншот ошибки

В основном это говорит о том, что я не использую ни одного корневого элемента в своем компоненте, что действительно странно, потому что мой компонент выглядит так:

<template lang="html">
<div>Hello from component</div>
</template>

<script>
export default {
}
</script>

<style lang="css">
</style>

Я застрял. Может кто-нибудь, пожалуйста, помогите?

2 ответа

Поэтому я попробовал несколько разных вещей безуспешно, например, используя или даже как имена компонентов.

Я также попробовал эти два способа запуска vue:

Как вы получаете с электронно-кузнечнымconst app = new Vue(App).$mount('#app')

и как я узнал new Vue({el: '#app', render: h => h(App)})

Ничто не похоже на работу...

Определите свой компонент следующим образом:

  export default {
    components: {
      'app-about': About
    }
  }

Затем используйте его в шаблоне вот так (с кебаб-кейсом):

<app-about></app-about>

Что касается ошибки вашего шаблона компиляции, вам нужно обернуть все в test.vue в корневой элемент:

<template>
  <div>
    <h2>Hello from {{text}}</h2>
    <app-about></app-about>
  </div>
</template>
Другие вопросы по тегам