mirror of
https://github.com/youzan/vant.git
synced 2026-05-02 01:01:43 +08:00
[improvement] use component name (#2450)
This commit is contained in:
@@ -1,46 +1,18 @@
|
||||
/**
|
||||
* Create a basic component with common options
|
||||
*/
|
||||
import '../locale';
|
||||
import createBem from './bem';
|
||||
import useSfc from './use/sfc';
|
||||
import useBem from './use/bem';
|
||||
import i18n from '../mixins/i18n';
|
||||
import { isDef, camelize } from '.';
|
||||
|
||||
function install(Vue) {
|
||||
const { name } = this;
|
||||
Vue.component(name, this);
|
||||
Vue.component((camelize(`-${name}`)), this);
|
||||
}
|
||||
|
||||
function returnArray() {
|
||||
return [];
|
||||
}
|
||||
|
||||
function defaultProps(props) {
|
||||
Object.keys(props).forEach(key => {
|
||||
if (props[key] === Array) {
|
||||
props[key] = {
|
||||
type: Array,
|
||||
default: returnArray
|
||||
};
|
||||
} else if (props[key] === Number) {
|
||||
props[key] = {
|
||||
type: Number,
|
||||
default: 0
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
import { isDef } from '.';
|
||||
|
||||
export default function (sfc) {
|
||||
sfc.name = 'van-' + sfc.name;
|
||||
sfc.install = sfc.install || install;
|
||||
sfc = useSfc('van-' + sfc.name)(sfc);
|
||||
sfc.mixins = sfc.mixins || [];
|
||||
sfc.mixins.push(i18n);
|
||||
sfc.methods = sfc.methods || {};
|
||||
sfc.methods.isDef = isDef;
|
||||
sfc.methods.b = createBem(sfc.name);
|
||||
sfc.props && defaultProps(sfc.props);
|
||||
sfc.methods.b = useBem(sfc.name);
|
||||
|
||||
return sfc;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user