[improvement] Functional components be just functions (#2735)

This commit is contained in:
neverland
2019-02-14 11:56:02 +08:00
committed by GitHub
parent 166397dad4
commit 5a9143c736
21 changed files with 704 additions and 674 deletions

View File

@@ -4,35 +4,34 @@ import CellGroup from '../cell-group';
const [sfc, bem] = use('panel');
export default sfc({
functional: true,
function Panel(h, props, slots, ctx) {
return (
<CellGroup class={bem()} {...ctx.data}>
{slots.header ? (
slots.header()
) : (
<Cell
icon={props.icon}
label={props.desc}
title={props.title}
value={props.status}
class={bem('header')}
valueClass={bem('header-value')}
/>
)}
<div class={bem('content')}>{slots.default && slots.default()}</div>
{slots.footer && (
<div class={[bem('footer'), 'van-hairline--top']}>{slots.footer()}</div>
)}
</CellGroup>
);
}
props: {
icon: String,
desc: String,
title: String,
status: String
},
Panel.props = {
icon: String,
desc: String,
title: String,
status: String
};
render(h, context) {
const { props } = context;
const slots = context.slots();
return (
<CellGroup class={bem()} {...context.data}>
{slots.header || (
<Cell
icon={props.icon}
label={props.desc}
title={props.title}
value={props.status}
class={bem('header')}
valueClass={bem('header-value')}
/>
)}
<div class={bem('content')}>{slots.default}</div>
{slots.footer && <div class={[bem('footer'), 'van-hairline--top']}>{slots.footer}</div>}
</CellGroup>
);
}
});
export default sfc(Panel);