javascript - Vue只渲染第一个自定义组件问题

标签 javascript vue.js

我有一个简单的 Vue 应用程序,我正在尝试渲染多个自定义组件,这就是我正在尝试的:

JS

Vue.component('refinement-list', {
  props: ['attribute', 'title'],
  template: '<div>{{attribute}} - {{title}}</div>'
});

new Vue({
  el: '#app'
});

HTML

<div id="app">
  <refinement-list attribute="test" title="Test" />
  <refinement-list attribute="sample" title="Sample" />
</div>

但是问题是仅呈现第一个组件,请参阅工作示例: https://codepen.io/javiervd/pen/vYBpQMm

我尝试在本地注册组件,但没有成功。我还在我的应用程序中使用带有脚本标记的 Vue,因为我无法为这个特定项目使用构建系统,不确定这是否重要。

有人能指出我正确的方向吗?谢谢。

最佳答案

由于您是在 DOM 中定义模板,因此不能对自定义组件使用自闭合标签。

这应该有效:

<div id="app">
  <refinement-list attribute="test" title="Test"></refinement-list>
  <refinement-list attribute="sample" title="Sample"></refinement-list>
</div>

模板字符串或单文件组件中不存在此限制。

您可以在这里阅读更多相关信息:https://v2.vuejs.org/v2/style-guide/#Self-closing-components-strongly-recommended

关于javascript - Vue只渲染第一个自定义组件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57824910/

相关文章:

vue.js - Vuetify 输入自动完成错误

javascript - 在 Vuetify 上垂直居中内容

javascript - 执行调度程序刷新期间未处理的错误。这可能是一个 Vue 内部错误

javascript - 函数已执行,但抛出错误

javascript - Flot:手动更改文本区域时 plotclick 丢失范围

firebase - TypeError : Cannot create property 'href' on string 'about:blank'

vue.js - 在 VueJS 中如何确定模板中元素的元素宽度

javascript - Yeoman yo webapp 因类型错误而失败

javascript - 为什么这个函数返回 NAN

javascript - 如何为 Jest 初始化 Feathers 实例一次