vue2.0为什么组件可以支持驼峰命名。

目前没有使用虚拟dom,而是在vue文件里头编写组件的,印象中1.0时组件名要求小写和横线分隔,而目前升级成最新版后发现,组件命名成驼峰也能匹配到,这个是什么原因呢?望大神指点~~

阅读 6.2k
3 个回答

没看过vuejs的源码。
我个人猜测应该是它的框架中,有代码对驼峰命名做了处理,能自动变成小写和横线分割。

我知道,angular里面是说,html 不区分大小写,所以把驼峰命名变为横线+小写,即横线+小写就是一个大写字母。

vue.js 里面也是类似。

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))
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题