在vue的中文官網有這樣的說明:HTML 中的特性名是大小寫不敏感的,因此瀏覽器會把全部大寫字符解釋爲小寫字符。這意味着當你使用 DOM 中的模板時,camelCase (駝峯命名法) 的 prop 名須要使用其等價的 kebab-case (短橫線分隔命名) 命名。 重申一次,若是你使用字符串模板,那麼這個限制就不存在了。 以如下代碼爲例: 一、當組件中template及props等使用駝峯式命名,在html中對應的改爲短橫線命名方式。
二、當組件中template及props等使用字符串模板,在html中改爲對應的小寫。
源碼說明: 在Vue的源碼中建立Vue組件的時候createComponent(),解析組件的相關屬性 // extract props var propsData = extractPropsFromVNodeData(data, Ctor, tag);
而,在extractPropsFromVNodeData()中,Vue經過調用內部方法hyphenate,把駝峯形式的屬性轉換爲橫斷線形式。html
除此以外,Vue在initProps(),validateProp()時,都將駝峯形式的屬性轉換爲橫斷線形式。