Компонент VueJS не отрисовывается
у меня есть очень простое приложение vueJS, которое я следую с веб-сайта.
здесь код, почему компонент не оказывает?
HTML-код
<script src="https://unpkg.com/vue"></script>
<div id="app">
<p>{{ message }}</p>
</div>
<div>
<ol>
<todo-item></todo-item>
</ol>
</div>
JS
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
Vue.component('todo-item', {
template: '<li>This is a list item</li>'
})
2 ответов
лучше, вы можете использовать Компоненты Одного Файла определение todo-item
компонент внутри другого файл:
app.vue
import TodoItem from './components/todo-item'
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
},
components: {
TodoItem
}
})
компоненты / todo-item.vue
<template>
<li>This is a list item</li>
</template>
<script>
export default {
name: 'todo-item'
}
</script>
во многих проектах Vue глобальные компоненты будут определены с помощью
Vue.component
, следовал поnew Vue({ el: '#container' })
для назначения элемента контейнера в теле каждой страницы.это может работать очень хорошо для малого проекты среднего размера, где JavaScript используется только для улучшения определенных представлений. Однако в более сложных проектах или когда ваш интерфейс полностью управляется JavaScript, эти недостатки становятся очевидными:
- глобальные определения force уникальные имена для каждого компонента
- строка шаблоны отсутствие подсветки синтаксиса и требуют уродливых косых черт для многострочного HTML
- нет поддержки CSS означает, что в то время как HTML и JavaScript благодаря модульности на компоненты, CSS-это явно вышел
- нет шага сборки ограничивает нас HTML и ES5 JavaScript, а не препроцессорами, такими как Pug (ранее Jade) и Babel
все они решаются однофайловыми компонентами с
- использовать компонент внутри указанного
el
смонтировать элемент. - определить компонент до инициализация экземпляра Vue. ( "убедитесь, что компонент зарегистрирован перед созданием экземпляра корневого экземпляра Vue")
Vue.component('todo-item', {
template: '<li>This is a list item</li>'
})
new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
<ol>
<todo-item></todo-item>
</ol>
<p>{{ message }}</p>
</div>
<div>
</div>