gtht-miniapp-sdk
Version:
gtht-miniapp-sdk 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
50 lines (49 loc) • 1.65 kB
JavaScript
const defaultBem = {
namespace: 'gms',
blockSeparator: '-',
elementSeparator: '__',
modifierSeparator: '_',
};
export function createBemStruct(config) {
const { namespace, blockSeparator, elementSeparator, modifierSeparator } = config;
return (block) => {
const prefix = namespace + blockSeparator + block;
return {
b() {
return prefix;
},
e(element, is) {
if (arguments.length === 2 && !is) {
return '';
}
return prefix + elementSeparator + element;
},
m(modifier, is) {
if (arguments.length === 2 && !is) {
return '';
}
return prefix + modifierSeparator + modifier;
},
em(element, modifier, is) {
if (arguments.length === 3 && !is) {
return '';
}
return (prefix + elementSeparator + element + modifierSeparator + modifier);
},
bem(block, element, modifier, is) {
if (arguments.length === 4 && !is) {
return '';
}
let className = namespace + blockSeparator + block;
if (element) {
className += elementSeparator + element;
}
if (modifier) {
className += modifierSeparator + modifier;
}
return className;
},
};
};
}
export const createBem = createBemStruct(defaultBem);