diff --git a/components/button/button.jsx b/components/button/button.jsx index 1cf91f561..d0ed953db 100644 --- a/components/button/button.jsx +++ b/components/button/button.jsx @@ -14,9 +14,8 @@ export default { __ANT_BUTTON: true, props, setup() { - const configProvider = inject('configProvider', ConfigConsumerProps); return { - configProvider, + configProvider: inject('configProvider', ConfigConsumerProps), }; }, data() { diff --git a/components/card/Card.jsx b/components/card/Card.jsx index 9b1a8885a..a431743f3 100644 --- a/components/card/Card.jsx +++ b/components/card/Card.jsx @@ -1,14 +1,10 @@ +import { inject } from 'vue'; import omit from 'omit.js'; import Tabs from '../tabs'; import Row from '../row'; import Col from '../col'; import PropTypes from '../_util/vue-types'; -import { - getComponentFromProp, - getSlotOptions, - filterEmpty, - getListeners, -} from '../_util/props-util'; +import { getComponent, getSlotOptions, filterEmpty, getListeners } from '../_util/props-util'; import BaseMixin from '../_util/BaseMixin'; import { ConfigConsumerProps } from '../config-provider'; @@ -33,8 +29,10 @@ export default { activeTabKey: PropTypes.string, defaultActiveTabKey: PropTypes.string, }, - inject: { - configProvider: { default: () => ConfigConsumerProps }, + setup() { + return { + configProvider: inject('configProvider', ConfigConsumerProps), + }; }, data() { return { @@ -82,7 +80,7 @@ export default { const prefixCls = getPrefixCls('card', customizePrefixCls); const { $slots, $scopedSlots } = this; - const tabBarExtraContent = getComponentFromProp(this, 'tabBarExtraContent'); + const tabBarExtraContent = getComponent(this, 'tabBarExtraContent'); const classString = { [`${prefixCls}`]: true, [`${prefixCls}-loading`]: loading, @@ -170,8 +168,8 @@ export default { })} ) : null; - const titleDom = getComponentFromProp(this, 'title'); - const extraDom = getComponentFromProp(this, 'extra'); + const titleDom = getComponent(this, 'title'); + const extraDom = getComponent(this, 'extra'); if (titleDom || extraDom || tabs) { head = (
@@ -185,7 +183,7 @@ export default { } const children = $slots.default; - const cover = getComponentFromProp(this, 'cover'); + const cover = getComponent(this, 'cover'); const coverDom = cover ?
{cover}
: null; const body = (
diff --git a/components/card/Grid.jsx b/components/card/Grid.jsx index 24df54786..e3f24a2fc 100644 --- a/components/card/Grid.jsx +++ b/components/card/Grid.jsx @@ -1,6 +1,7 @@ +import { inject } from 'vue'; import PropTypes from '../_util/vue-types'; import { ConfigConsumerProps } from '../config-provider'; -import { getListeners } from '../_util/props-util'; +import { getSlot } from '../_util/props-util'; export default { name: 'ACardGrid', @@ -9,8 +10,10 @@ export default { prefixCls: PropTypes.string, hoverable: PropTypes.bool, }, - inject: { - configProvider: { default: () => ConfigConsumerProps }, + setup() { + return { + configProvider: inject('configProvider', ConfigConsumerProps), + }; }, render() { const { prefixCls: customizePrefixCls, hoverable = true } = this.$props; @@ -22,10 +25,6 @@ export default { [`${prefixCls}-grid`]: true, [`${prefixCls}-grid-hoverable`]: hoverable, }; - return ( -
- {this.$slots.default} -
- ); + return
{getSlot(this)}
; }, }; diff --git a/components/card/Meta.jsx b/components/card/Meta.jsx index e77901948..d2b302ec9 100644 --- a/components/card/Meta.jsx +++ b/components/card/Meta.jsx @@ -1,5 +1,6 @@ +import { inject } from 'vue'; import PropTypes from '../_util/vue-types'; -import { getComponentFromProp, getListeners } from '../_util/props-util'; +import { getComponent } from '../_util/props-util'; import { ConfigConsumerProps } from '../config-provider'; export default { @@ -9,8 +10,10 @@ export default { title: PropTypes.any, description: PropTypes.any, }, - inject: { - configProvider: { default: () => ConfigConsumerProps }, + setup() { + return { + configProvider: inject('configProvider', ConfigConsumerProps), + }; }, render() { const { prefixCls: customizePrefixCls } = this.$props; @@ -22,9 +25,9 @@ export default { [`${prefixCls}-meta`]: true, }; - const avatar = getComponentFromProp(this, 'avatar'); - const title = getComponentFromProp(this, 'title'); - const description = getComponentFromProp(this, 'description'); + const avatar = getComponent(this, 'avatar'); + const title = getComponent(this, 'title'); + const description = getComponent(this, 'description'); const avatarDom = avatar ?
{avatar}
: null; const titleDom = title ?
{title}
: null; @@ -39,7 +42,7 @@ export default {
) : null; return ( -
+
{avatarDom} {MetaDetail}
diff --git a/components/card/index.js b/components/card/index.js index e1d5c9abb..7282dffe9 100644 --- a/components/card/index.js +++ b/components/card/index.js @@ -1,16 +1,14 @@ import Card from './Card'; import Meta from './Meta'; import Grid from './Grid'; -import Base from '../base'; Card.Meta = Meta; Card.Grid = Grid; /* istanbul ignore next */ -Card.install = function(Vue) { - Vue.use(Base); - Vue.component(Card.name, Card); - Vue.component(Meta.name, Meta); - Vue.component(Grid.name, Grid); +Card.install = function(app) { + app.component(Card.name, Card); + app.component(Meta.name, Meta); + app.component(Grid.name, Grid); }; export default Card;