Что означает конструкция: const loadedPaths = new Set<string>();
Эта конструкция означает:
👉 создаётся пустое множество (Set) строк, которое будет хранить уникальные значения.
Разберём по частям 👇
Разбор строки
const loadedPaths = new Set<string>();
1️⃣ Set
Set — это встроенная структура данных в JavaScript.
Она:
-
хранит уникальные значения
-
не допускает дубликатов
-
быстро проверяет наличие элемента
Пример:
const s = new Set();
s.add('/login');
s.add('/login');
console.log(s.size); // 1
2️⃣ <string>
Это TypeScript-тип.
Set<string>
означает:
-
в
Setможно положить только строки -
TypeScript будет ругаться, если положить число или объект
loadedPaths.add('/users'); // ✅
loadedPaths.add(123); // ❌ ошибка TS
3️⃣ new Set()
Создаёт новый пустой Set.
На старте:
loadedPaths.size === 0
Зачем это обычно используют
🔹 Отслеживать уже обработанные маршруты
if (!loadedPaths.has(to.path)) {
loadRoute(to.path)
loadedPaths.add(to.path)
}
🔹 Не выполнять один и тот же код дважды
if (loadedPaths.has(key)) return
🔹 Кешировать результаты
loadedPaths.add('/profile')
Почему не массив (string[])
| Set | Array |
|---|---|
| Гарантирует уникальность | Нужно проверять вручную |
Быстро has() |
Медленно includes() |
| Нет дубликатов | Легко ошибиться |
В контексте vue-router (часто)
const loadedPaths = new Set<string>();
router.beforeEach((to) => {
if (loadedPaths.has(to.path)) return
loadedPaths.add(to.path)
// динамическая загрузка роутов
})
Коротко
const loadedPaths = new Set<string>();
👉 хранилище уникальных строк, обычно для контроля «что уже было обработано»
No comments to display
No comments to display