camelCased (驼峰式) 命名与 kebab-case(短横线命名)

HTML 特性是不区分大小写的。所以,当使用的不是字符串模板时,camelCase (驼峰式命名) 的 prop 需要转换为相对应的 kebab-case (短横线分隔式命名):

Vue.component('child', {
  // 在 JavaScript 中使用 camelCase
  props: ['myMessage'],
  template: '{{ myMessage }}'
})

<child my-message="hello!">child>

如果你使用字符串模板,则没有这些限制。

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。


vue 2.0 支持驼峰式命名

html不区分大小写,所以组件里面的驼峰式命名,短横线命名,已经单词首字母大写,在html中都会转换成短横线

vue里面有转换方法:

var hyphenateRE = /([^-])([A-Z])/g;
var hyphenate = cached(function (str){
    return str
    .replace(hyphenateRE, '$1-$2')
    .replace(hyphenateRE, '$1-$2')
    .toLowerCase()
})

cached是生成函数的一个带缓存的版本

function cached(fn) {
    var cache = Object.create(null);
    return (function cachedFn(str){
        var hit = cache[str];
        return hit || (cache[str] = fn(str))
    })
}

你可能感兴趣的:(vue)