diff --git a/packages/fund-components/src/index.ts b/packages/fund-components/src/index.ts index 9f2de47e9..8af162261 100644 --- a/packages/fund-components/src/index.ts +++ b/packages/fund-components/src/index.ts @@ -3,5 +3,5 @@ export { default as WeaverLine } from './weaverLine'; export { default as Line } from './line'; -export { default as Guide } from './guide'; +export { default as Guide, withGuide, guideView } from './guide'; export { default as Axis } from './axis'; diff --git a/packages/jsx/jsx-runtime.js b/packages/jsx/jsx-runtime.js index 6769b687b..fbb0cac05 100644 --- a/packages/jsx/jsx-runtime.js +++ b/packages/jsx/jsx-runtime.js @@ -1,2 +1,2 @@ "use strict"; -module.exports = require('./lib/index.js'); +module.exports = require('./lib/jsx-runtime.js'); diff --git a/packages/jsx/src/index.ts b/packages/jsx/src/index.ts index 79bed7641..70287c0af 100644 --- a/packages/jsx/src/index.ts +++ b/packages/jsx/src/index.ts @@ -1,10 +1,7 @@ import render from './render'; -import jsx from './jsx'; -import Fragment from './fragment'; +import jsx from './jsx-classic'; export { render, - Fragment, jsx, - jsx as jsxs -}; +}; diff --git a/packages/jsx/src/jsx.ts b/packages/jsx/src/jsx-automatic.ts similarity index 100% rename from packages/jsx/src/jsx.ts rename to packages/jsx/src/jsx-automatic.ts diff --git a/packages/jsx/src/jsx-classic.ts b/packages/jsx/src/jsx-classic.ts new file mode 100644 index 000000000..891257684 --- /dev/null +++ b/packages/jsx/src/jsx-classic.ts @@ -0,0 +1,31 @@ +import { batch2hd, extendArray, isFunction } from './util'; + +// 实现jsx-classic 入口 +export default function(type: string | Function, props: any, ...children: any[]) { + props = props || {}; + if (isFunction(type)) { + // f2组件,需要在外部实例化 + // @ts-ignore + if (type.prototype && type.prototype.isF2Component) { + return { + type, + props, + key: props.key, + }; + } + // 如果是方法,直接执行,生成G的定义树 + // @ts-ignore + return type(props); + } + + const { style, attrs, key } = props; + + return { + type, + props, + key, + style: batch2hd(style) || {}, + attrs: batch2hd(attrs), + children: extendArray(children), + }; +}; diff --git a/packages/jsx/src/jsx-runtime.ts b/packages/jsx/src/jsx-runtime.ts new file mode 100644 index 000000000..8559aa5d3 --- /dev/null +++ b/packages/jsx/src/jsx-runtime.ts @@ -0,0 +1,8 @@ +import jsx from './jsx-automatic'; +import Fragment from './fragment'; + +export { + Fragment, + jsx, + jsx as jsxs +};