javascript - Vue 只呈现第一个自定义组件问题
问题描述
我有一个简单的 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 ://vuejs.org/v2/style-guide/#Self-closing-components-strongly-recommended
推荐阅读
- css - 如何使用 css3 创建进度条
- python - Is there a method to strip specific letter form a string
- c++ - 使用大小写字母的 if else 语句
- java - 电话验证码不适用于 firebase android
- php - 无脂肪 php Captcha 显示完整的黑色图像
- django - 如何将表单错误重定向到带有验证错误的表单页面
- python - AttributeError:“模块”对象没有属性“系列”
- javascript - firestore 获取字段以发挥作用
- hybris - 在 SmartEdit 中编辑与 SEO 相关的元标记
- sql-server - 在 SQL Server 存储过程中使用变量时出错