Компонент внутри другого компонента не работает - webpack - Vue.js 2

Я совершенно новичок в Vue.js, и поэтому я чувствую, что проблема очень проста. Вот мой компонент Test.vue:

<template>
  <p>Hello Worldd</p>
</template>
<script>
export default {
  name : 'test'
}
</script>

Я пытаюсь отобразить это «Hello Worldd» в другом компоненте с именем UserDevices.vue. Вот содержимое этого файла:

<template>
  <div>
    <test></test>
    <p>test</p>
  </div>
</template>

<script>
import Test from './Test'

export default {
  name: 'UserDevices',
  components: {Test}
}

Я получаю сообщение об ошибке:

[Vue warn]: Unknown custom element: <test> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

found in

---> <UserDevices> at src/components/UserDevices.vue
       <App> at src/App.vue
         <Root>

Я использую каркас webpack для vue в качестве шаблона. Разве это не правильный подход к этому?


person Jithesh Kt    schedule 17.10.2017    source источник
comment
Я думаю, проблема может заключаться в том, что объект components будет расширен до { 'Test': Test }, и у вас нет компонента под названием «Тест» — он называется «тест». Попробуйте определить components как { 'test' : Test }.   -  person PatrickSteele    schedule 17.10.2017
comment
Хорошо. Я изменил имя тега на test-tag и импортировал как import Test from './Test'. Инициализировал его как components: {'test-tag':Test}. Все равно не повезло.   -  person Jithesh Kt    schedule 17.10.2017
comment
Вы не закрываете тег скрипта </script> в коде, которым поделились. Это ошибка копирования/вставки? Если нет, то, вероятно, проблема в этом.   -  person thanksd    schedule 17.10.2017
comment
@thanksd Боже мой! Большое спасибо. Это была именно проблема. Вы спасатель жизни. Спасибо.   -  person Jithesh Kt    schedule 17.10.2017


Ответы (1)


Вы используете файл .vue, а это означает, что vue-loader ищет раздел скрипта, заключенный в <script> теги. Но, поскольку вы не закрываете тег script с помощью </script>, vue-loader просто проигнорирует этот раздел файла .vue (без предупреждения).

Шаблон компонента Vue по-прежнему будет загружен, но модель экземпляра Vue (со всеми ее свойствами данных, методами, компонентами и т. д.) не будет загружена. Вот почему Vue не может найти компонент <test>.

person thanksd    schedule 17.10.2017