feat: compatible with Vue 2.x

This commit is contained in:
Amour1688
2020-05-27 12:52:52 +08:00
parent 7e0ee7dc5e
commit dcadabd28a
5 changed files with 37 additions and 1 deletions

View File

@ -19,6 +19,7 @@
"url": "https://github.com/vueComponent/jsx/issues"
},
"dependencies": {
"@ant-design-vue/babel-helper-vue-compatible-props": "^1.0.0",
"@ant-design-vue/babel-helper-vue-transform-on": "^1.0.0",
"@babel/helper-module-imports": "^7.0.0",
"@babel/plugin-syntax-jsx": "^7.0.0",

View File

@ -292,9 +292,13 @@ const transformJSXElement = (t, path, state) => {
const directives = [];
const tag = getTag(t, path);
const children = t.arrayExpression(getChildren(t, path.get('children')));
const attributes = getAttributes(t, path, state, directives);
const compatibleProps = addDefault(
path, '@ant-design-vue/babel-helper-vue-compatible-props', { nameHint: '_compatibleProps' },
);
const h = t.callExpression(state.h, [
tag,
getAttributes(t, path, state, directives),
state.opts.compatibleProps ? t.callExpression(compatibleProps, [attributes]) : attributes,
!t.isStringLiteral(tag) && !tag.name.includes('Fragment')
? t.objectExpression([
t.objectProperty(