我是初学者。我正在为自己开发一个使用ArangoDB,Node.js,Javascript和Vue的项目。我正在尝试为我的项目确定术语/样式指南。我相信,对于技术堆栈的每个不同部分,尝试在我的代码库中维护不同的样式会造成混乱。因此,我倾向于在任何地方都使用kebab-case。
例如,在Vue style guide的“好”示例中,MyComponent
和my-component
的混合使我感到困惑。
Vue.component('MyComponent', {
// ...
})
Vue.component('my-component', {
// ...
})
import MyComponent from './MyComponent.vue'
export default {
name: 'MyComponent',
// ...
}
在研究这个问题时,我遇到了following statement:
隐式kebab-case-camel-case转换不再适用,因为引用名称是纯字符串,并且不受必须符合必需的小写kebab-case HTML语法约束
我不明白这是什么意思,直到现在我已经看过一些Vue教程,但直到现在我还没有听说过“隐式的kebab-case-camel-case转换”。几次搜索都未能为我带来关于Vue隐式kebab-case对话的任何明确讨论。
很明显,关于kebab-case和Pascal-case的决定比我理解的要多,在做出决定之前,我需要寻求经验丰富的开发人员的建议。
另一种询问方式是:
我希望这显然不是基于意见的问题。我想知道的是,如果我在使用ArangoBB,Node.js,Javascript和Vue的项目中尝试在所有地方使用kebab-case,会遇到哪些意外问题?
更新:《 Vue风格指南》说:“ 在所有地方都使用烤肉架是可以接受的。” (但我不清楚在这种情况下“无处不在”的含义。
在进一步搜索中,我在这里找到了一个很好的讨论,似乎与Vue风格指南中的声明不符:HTML case sensitivity workaround · Issue #2308 · vuejs/vue
从本质上讲,存在问题是因为javascript和HTML不同 技术并使用不同的命名系统。并使用相同的 两种技术的情况(烤肉串或骆驼)都会使怪异感从 一个地方到另一个地方,但潜在的问题仍然存在。
我相信,我们能做的就是画一条线,当前的线非常好:
- html上下文中的烤肉串
在JavaScript上下文中- camelCase(和PascalCase)。
IMO,我们应该只支持当前的约定,而不是寻找 为了更好的当然,请使用警告来帮助初学者。
似乎大多数回应都同意这一点。最后的答复是:
要提交给内存的一条规则:HTML = kebab-case,JavaScript = camelCase
用HTML表示属性和标记。属性值为JavaScript 使用v-bind时的表达式,因此适用第二条语句。
但是我的问题仍然存在:如果在使用ArangoBB,Node.js,Javascript和Vue的项目中尝试在各处使用kebab-case ,我会遇到哪些意外问题?