Vue js 2.0 ничего не рендеринг?
используя Vue (^2.0.0-rc.6) + Browserify, точка входа-индекс.js:
import Vue from 'vue'
import App from './containers/App.vue'
new Vue({ // eslint-disable-line no-new
el: '#root',
render: (h) => h(App)
})
App.vue:
<template>
<div id="root">
<hello></hello>
</div>
</template>
<script>
import Hello from '../components/Hello.vue'
export default {
components: {
Hello
}
}
</script>
<style>
body {
font-family: Helvetica, sans-serif;
}
</style>
Здравствуйте.vue:
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
data () {
return {
msg: 'Hello Vue!'
}
}
}
</script>
пустой белый экран, я что-то пропустил?
EDIT:
запись html просто <div id="root"></div>
, никаких ошибок в журналах консоли,и я уверен, что Привет.Вью загружается с console.log('test')
этот файл появляется на консоли.
EDIT 2:
обнаружены ошибки:
[Vue warn]: вы используете только для выполнения сборки Vue, где опция шаблона недоступна. Либо предварительная компиляция шаблонов в функции рендеринга или используйте сборку, включенную в компилятор. (найдено в анонимный компонент-используйте опцию " имя " для лучшей отладки сообщения.)
означает ли это, что я должен использовать решение webpack? Не удается использовать стандартный HTML?
решение: Импорт Vue из 'vue/dist / vue.js'
3 ответов
просто чтобы облегчить жизнь людям, которые ищут ответ:
import Vue from 'vue/dist/vue.js'
import App from './App.vue'
new Vue({
el: '#app',
render: h => h(App)
})
от автора -- 2.0 автономное средство сборки (компилятор + среда выполнения). Экспорт пакета NPM по умолчанию будет выполняться только во время выполнения, поскольку при установке из NPM шаблоны, скорее всего, будут предварительно скомпилированы с помощью инструмента сборки.
Если вы используете инструмент сборки, такой как browserify или Webpack, вы, скорее всего, можете использовать компоненты одного файла чтобы избежать таких ошибок (в компонентах с одним файлом шаблоны автоматически компилируются для рендеринга функций vueify). Вы определенно должны стараться избегать шаблонов в другом месте. Проверьте форум и документацию для ответов о том, как избежать их.
но я знаю по собственному опыту, что не всегда легко найти шаблоны в вашем project, которые вызывают сообщение об ошибке. Если у вас такая же проблема, как временное решение, следующее должно помочь:
вы не должны импортировать ' vue / dist / vue.js' (проверьте документацию: https://github.com/vuejs/vue/wiki/Vue-2.0-RC-Starter-Resources#standalone-vs-runtime-builds почему бы и нет)
вместо этого вы должны обрабатывать это в инструменте сборки, который вы используете.
В моем случае, я использую browserify, где вы можете использовать aliasify для создание псевдонима. Добавьте к вашему :
{
// ...
"browser": {
"vue": "vue/dist/vue.common.js"
}
}
для пользователей Webpack, похоже, вам нужно добавить в свою конфигурацию следующее:
resolve: {
alias: {vue: 'vue/dist/vue.js'}
},
более подробную информацию можно найти в документации: https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
С Бранч я решил это, добавив Это правило в brunch-config.js
:
npm: {
aliases: {
vue: "vue/dist/vue.js"
}
}
см.http://brunch.io/docs/config#npm
это было построить компонент Vue с внутренним <template>
:
<template>
<div> hello </div>
</template>
<script>
export default {
name: 'Hello',
props: {
title: String,
},
}
</script>