You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache环境下运行Vue组件?Vue2示例组件无法显示求助

排查Vue 2组件<todo-item>不显示的常见问题

嘿,我刚入门Vue 2的时候也踩过这个组件不渲染的坑!别慌,咱们从最常见的几个点入手排查:

1. 组件注册顺序搞反了

Vue需要先注册组件,再创建Vue实例。如果你的代码是先写new Vue({ el: '#app' }),再写Vue.component('todo-item', { ... }),那Vue实例初始化的时候根本不知道这个组件存在,自然不会渲染。

正确的顺序应该是:

// 先注册全局组件
Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})

// 再创建Vue实例
new Vue({
  el: '#app',
  data: {
    todos: [
      { text: '学习Vue' },
      { text: '构建组件' }
    ]
  }
})

2. 组件模板缺少单一根元素

Vue 2的组件模板必须有一个唯一的根元素,不能直接并列多个元素。比如如果你写了这样的模板:

// 错误示例:没有根元素
template: '<li>{{ todo.text }}</li><li>额外内容</li>'

这种情况组件会静默失败不渲染,改成下面这样就好:

// 正确示例:用<ul>或<div>包起来
template: '<ul><li>{{ todo.text }}</li><li>额外内容</li></ul>'

3. 组件调用时的拼写/绑定错误

  • 检查组件标签拼写:Vue 2里注册的是todo-item,模板里就必须写<todo-item>,HTML是大小写不敏感的,别写成<TodoItem>(除非你在单文件组件里用驼峰注册)。
  • 检查props传递:如果你的组件需要接收todo数据,父组件里必须正确绑定,比如:
<!-- 正确:用v-bind绑定props -->
<todo-item v-for="todo in todos" :todo="todo"></todo-item>

<!-- 错误:没绑定props,组件拿不到数据,可能渲染空内容 -->
<todo-item v-for="todo in todos">{{ todo.text }}</todo-item>

4. 用了Runtime-only版本的Vue

如果你引入的是Vue的runtime-only版本(比如vue.runtime.js),它不支持直接在HTML里编译模板(包括组件标签)。确保你引入的是完整构建版本的Vue:

<!-- 正确:完整版本,支持模板编译 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

<!-- 错误:runtime-only版本,不支持HTML模板编译 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.runtime.js"></script>

5. 查看浏览器控制台的错误提示

这是最关键的一步!按F12打开开发者工具,切换到Console面板,看看有没有红色的错误信息。比如组件注册失败、props类型不匹配、数据未定义这些问题,都会在这里给出明确提示,帮你快速定位问题。

先从这几个点排查,应该能解决你的问题。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:52:32