Соглашения об именовании
Соглашения об именовании
Заголовок раздела «Соглашения об именовании»Соглашения об именовании едины для всего семейства и согласованы с docs/project/development-guide.md репозитория plus.
Корень обратного домена
Заголовок раздела «Корень обратного домена»top.lhgb (перевёрнутое www.lhgb.top) — корень именования для всех репозиториев семейства lh-ui.
- Сторона JS / npm: имя пакета сохраняет scope
@lh-ui/*— точки в именах npm-пакетов не допускаются, поэтомуtop.lhgbнельзя использовать как имя пакета напрямую. Обратный домен ложится на уровень метаданных:homepage/repository/authorвpackage.jsonединообразно используютlhgb.top. - Сторона нативных платформ: applicationId / bundleId / package в
lh-ui-android/lh-ui-ios/lh-ui-harmony/lh-ui-cуже используют формуtop.lhgb.*(это не относится к данному репозиторию).
Четыре уровня префикса LH
Заголовок раздела «Четыре уровня префикса LH»Все символы, не относящиеся к сторонним библиотекам, должны иметь префикс LH. При добавлении новых констант / типов / интерфейсов соблюдайте это сразу, не оставляя на потом:
| Уровень | Форма | Примеры |
|---|---|---|
| Константы | LH_XXX (верхний регистр, подчёркивания) |
LH_SIZE_DEFAULT, LH_LANGUAGE_DEFAULT, LH_THEME_PRESETS |
| Типы / интерфейсы | LhXxx (UpperCamelCase) |
LhThemePreset, LhSxProps, LhVirtualRange |
| Модульные синглтоны / объекты в lowerCamelCase | lhXxx |
lhlocale |
| BEM-классы / name компонентов | lh-xxx / LhXxx |
.lh-button--primary, name: 'LhButton' |
Структура имени константы — LH_<модуль>_<понятие>; константа со значением по умолчанию получает суффикс DEFAULT:
LH_DRAWER_DIRECTION_DEFAULT(а неLH_DEFAULT_DRAWER_DIRECTION)LH_DROPDOWN_PLACEMENT_DEFAULT,LH_POPCONFIRM_TYPE_DEFAULT
Это согласуется с уже существующими LH_SIZE_DEFAULT / LH_LANGUAGE_DEFAULT.
Регистрация исключений
Заголовок раздела «Регистрация исключений»Символы, ставшие стандартом по договорённости, префикс получать не обязаны. Перед изменением сначала зафиксируйте здесь причину:
| Символ | Причина |
|---|---|
Экспорт языковых пакетов zhCN / enUS |
Стандартные имена locale; к тому же реэкспортируются как публичный API библиотеками @lh-ui/vue3 / @lh-ui/vue2 / uniapp — переименование затронуло бы слишком многое |
Строковые значения имён пресетов темы (name: 'cerblue' и др.) |
Это конфигурационные значения, которые пользователи пишут в theme ConfigProvider; изменение сломает конфигурации всех downstream-пользователей. Соответствующий TS-идентификатор всё же получает префикс (LhCerblue) |
Экспортируемые символы сторонних зависимостей (например, утилиты, импортируемые помимо deepMerge) |
Не форсируется |
Переименования в 0.4.0
Заголовок раздела «Переименования в 0.4.0»До 0.4.0 этот репозиторий не следовал семейным правилам префиксов; в этот раз недостающее было добавлено. Везде производится механическая замена на уровне идентификаторов; таблица соответствий — в Руководстве по миграции на 0.4.0.
Copyright © 2024-2026 FengMo WenXue