When Vue normalizeDirectives, it will call getRawDirName to get rawName that is as the unique key of the directive. babel-plugin-transform-vue-jsx does not handle it in a correct way.
function normalizeDirectives (
dirs: ?Array<VNodeDirective>,
vm: Component
): { [key: string]: VNodeDirective } {
const res = Object.create(null)
if (!dirs) {
// $flow-disable-line
return res
}
let i, dir
for (i = 0; i < dirs.length; i++) {
dir = dirs[i]
if (!dir.modifiers) {
// $flow-disable-line
dir.modifiers = emptyModifiers
}
res[getRawDirName(dir)] = dir
dir.def = resolveAsset(vm.$options, 'directives', dir.name, true)
}
// $flow-disable-line
return res
}
function getRawDirName (dir: VNodeDirective): string {
return dir.rawName || `${dir.name}.${Object.keys(dir.modifiers || {}).join('.')}`
}
When Vue normalizeDirectives, it will call
getRawDirName
to getrawName
that is as the unique key of the directive.babel-plugin-transform-vue-jsx
does not handle it in a correct way.