[Vue 警告]: 找不到元素——呈现空容器
[Vue warn]: Cannot find element — empty container is rendered
我正在尝试学习 Vue 2 框架,但遇到了这个错误。我有以下脚本负责我的应用程序的功能:
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import App from './App.vue'
import Posts from './components/Posts.vue'
import Routes from './routes/routes'
Vue.config.productionTip = false
Vue.use(VueRouter)
Vue.use(VueResource)
const router = new VueRouter({
routes: Routes
})
new Vue({
el: '#app',
router: router,
render: h => h(App)
})
App.vue
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<script>
import Posts from './components/Posts.vue'
export default {
name: 'app',
components: {
Posts
}
}
</script>
<template>
<div id='root'>
<h1>Test</h1>
<input type="text" v-model="message">
</div>
</template>
Posts.vue
<script>
import Vue from 'vue'
window.addEventListener('load', function () {
new Vue({
el: '#root',
data: {
message: 'Hello World!'
}
})
})
</script>
这些脚本包含在页面末尾。重要的是要提到 id 值为 'app' 的 div 是空的。我也是 webpack 的新手,所以我假设我的导入和导出有问题,但不幸的是我无法自己解决它。索引页仅包含以下内容:
<div id="app"></div>
UPD (router.js)
import Posts from '../components/Posts.vue'
const routes = [
{ path: '/', component: Posts }
]
export default routes
在App.vue
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<router-view>
组件将按照当前路线显示组件。
import Posts from '../components/Posts.vue'
const routes = [
{ path: '/', component: Posts }
]
export default routes
这里很明显 <router-view>
会显示 Posts
组件。
Posts.vue
<template>
<div id='root'>
<h1>Test</h1>
<input type="text" v-model="message">
</div>
</template>
<script>
import Vue from 'vue'
window.addEventListener('load', function () {
new Vue({
el: '#root',
data: {
message: 'Hello World!'
}
})
})
</script>
闪回路由器,有一行写着:
import Posts from '../components/Posts.vue'
这是导入默认语法,但是 Posts.vue 导出了什么?因此,路由器没有导入任何内容。因此,#app
.
中没有渲染任何内容
此外,帖子不必是 new Vue(...)
实例。
<template>
<div id='root'>
<h1>Test</h1>
<input type="text" v-model="message">
</div>
</template>
<script>
import Vue from 'vue'
export default {
data: {
message: 'Hello World!'
}
}
</script>
会做的很好。这样,路由器就可以使用默认导出。
我正在尝试学习 Vue 2 框架,但遇到了这个错误。我有以下脚本负责我的应用程序的功能:
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueResource from 'vue-resource'
import App from './App.vue'
import Posts from './components/Posts.vue'
import Routes from './routes/routes'
Vue.config.productionTip = false
Vue.use(VueRouter)
Vue.use(VueResource)
const router = new VueRouter({
routes: Routes
})
new Vue({
el: '#app',
router: router,
render: h => h(App)
})
App.vue
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<script>
import Posts from './components/Posts.vue'
export default {
name: 'app',
components: {
Posts
}
}
</script>
<template>
<div id='root'>
<h1>Test</h1>
<input type="text" v-model="message">
</div>
</template>
Posts.vue
<script>
import Vue from 'vue'
window.addEventListener('load', function () {
new Vue({
el: '#root',
data: {
message: 'Hello World!'
}
})
})
</script>
这些脚本包含在页面末尾。重要的是要提到 id 值为 'app' 的 div 是空的。我也是 webpack 的新手,所以我假设我的导入和导出有问题,但不幸的是我无法自己解决它。索引页仅包含以下内容:
<div id="app"></div>
UPD (router.js)
import Posts from '../components/Posts.vue'
const routes = [
{ path: '/', component: Posts }
]
export default routes
在App.vue
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<router-view>
组件将按照当前路线显示组件。
import Posts from '../components/Posts.vue'
const routes = [
{ path: '/', component: Posts }
]
export default routes
这里很明显 <router-view>
会显示 Posts
组件。
Posts.vue
<template>
<div id='root'>
<h1>Test</h1>
<input type="text" v-model="message">
</div>
</template>
<script>
import Vue from 'vue'
window.addEventListener('load', function () {
new Vue({
el: '#root',
data: {
message: 'Hello World!'
}
})
})
</script>
闪回路由器,有一行写着:
import Posts from '../components/Posts.vue'
这是导入默认语法,但是 Posts.vue 导出了什么?因此,路由器没有导入任何内容。因此,#app
.
此外,帖子不必是 new Vue(...)
实例。
<template>
<div id='root'>
<h1>Test</h1>
<input type="text" v-model="message">
</div>
</template>
<script>
import Vue from 'vue'
export default {
data: {
message: 'Hello World!'
}
}
</script>
会做的很好。这样,路由器就可以使用默认导出。