Что означает: options.routes = cloneDeep(options.routes);

Эта строка означает:
👉 создаётся глубокая копия массива маршрутов, и она записывается обратно в options.routes.

Строка целиком

options.routes = cloneDeep(options.routes);

Что такое cloneDeep

cloneDeep — обычно функция из lodash:

import { cloneDeep } from 'lodash-es';

Она:


Почему нельзя просто так

❌ Поверхностная копия

const copy = [...options.routes];

Проблема:

copy[0].meta.title = 'New';
// изменится и в original ❌

cloneDeep

const copy = cloneDeep(options.routes);

Теперь:

copy[0].meta.title = 'New';
// original НЕ изменится ✅

Что реально происходит пошагово

1️⃣ Берётся options.routes
2️⃣ Создаётся полный клон всей структуры маршрутов
3️⃣ options.routes теперь указывает на новую копию
4️⃣ Оригинальные маршруты остаются нетронутыми


Зачем это делают (очень важно)

В коде генерации роутов обычно:

❗ Если менять оригинал:


Типичный кейс из твоего контекста

options.routes = cloneDeep(options.routes);

// дальше
options.routes.forEach(route => {
  route.children?.push(dynamicRoute)
})

👉 изменения безопасны
👉 исходные routes не портятся


Аналогия 🧠


Коротко

Эта строка защищает исходные маршруты,
создавая их полную независимую копию перед изменениями.


Revision #1
Created 2026-01-20 09:18:09 UTC by Nikolay
Updated 2026-01-20 09:18:51 UTC by Nikolay