Vue组件名称必须小写?

时间:2018-08-29 20:29:04

标签: vuejs2

我正在尝试在视图文件中使用组件。以下不起作用 当我尝试使用<CampaignCreate></CampaignCreate>

将组件安装到视图中时
const app = new Vue({
    el: '#rewards-app',
    components: {
       CampaignCreate,
    }
});

如果我将其更改为:

const app = new Vue({
    el: '#rewards-app',
    components: {
       'campaign-create': CampaignCreate,
    }
});

我可以毫无问题地将组件作为<campaign-create></campaign-create>挂载到我的视图文件中。我试图了解其背后的原因。我目前正在使用vuejs 2.x

1 个答案:

答案 0 :(得分:3)

简而言之,这是因为HTML不区分大小写。两年前,Evan You本人在VueJS跟踪器中打开了a big discussion,其原因如下:

  

因此,众所周知,HTML不区分大小写。 myProp="123"被解析   作为myprop="123",这导致了Vue.js中的警告,   必须使用my-prop="123"来引用JavaScript中声明的prop为   myProp。这经常咬初学者。

该问题最终因决定保持原样而结束。这是一个有说服力的报价:

  

从本质上讲,存在问题是因为js和html不同   技术并使用不同的命名系统。并使用相同的   两种技术的情况(烤肉串或骆驼)都会使怪异感从   一个地方到另一个地方,但潜在的问题仍然存在,所以我   相信,我们所能做的就是画一条线。和当前行,即。   html上下文中的烤肉串案例和js中的camelCase(和PascalCase)   上下文非常好。