Vue初學之props的駝峯命名

在vue的中文官網有這樣的說明:HTML 中的特性名是大小寫不敏感的,因此瀏覽器會把全部大寫字符解釋爲小寫字符。這意味着當你使用 DOM 中的模板時,camelCase (駝峯命名法) 的 prop 名須要使用其等價的 kebab-case (短橫線分隔命名) 命名。
重申一次,若是你使用字符串模板,那麼這個限制就不存在了。
以如下代碼爲例:
一、當組件中template及props等使用駝峯式命名,在html中對應的改爲短橫線命名方式。

clipboard.png

二、當組件中template及props等使用字符串模板,在html中改爲對應的小寫。

clipboard.png

源碼說明:
在Vue的源碼中建立Vue組件的時候createComponent(),解析組件的相關屬性
// extract props
  var propsData = extractPropsFromVNodeData(data, Ctor, tag);

而,在extractPropsFromVNodeData()中,Vue經過調用內部方法hyphenate,把駝峯形式的屬性轉換爲橫斷線形式。html

clipboard.png

除此以外,Vue在initProps(),validateProp()時,都將駝峯形式的屬性轉換爲橫斷線形式。
相關文章
相關標籤/搜索