Size: a a a

React: русскоязычное сообщество

2020 February 01

T

The Fallen Phoenix in React: русскоязычное сообщество
Konstantin Sedykh
ммм, uuid в качестве id юзать?
Если делать так чтобы он не менялся когда не надо, пожалуйста
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Но тут абсолютно нет плюсов по сравнению с рядом целых чисел
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Кроме того что в случае ряда целых чисел коллизии не будет строго, а с uuid можно их дождаться за пару времен жизни вселенной
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
На эти грабли прыгают через шаг. Когда решают в целях оптимизации длину случайного ключа порезать
источник

KS

Konstantin Sedykh in React: русскоязычное сообщество
The Fallen Phoenix
На эти грабли прыгают через шаг. Когда решают в целях оптимизации длину случайного ключа порезать
есть такое. 😁
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
const createIdGetter=(i=0)=>()=>i++;
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
const getId = createIdGetter(100)
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
getId() // 100
getId() // 101
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
The Fallen Phoenix
const createIdGetter=(i=0)=>()=>i++;
Избавляет от компульсивного желания посмотреть последний id
источник

KS

Konstantin Sedykh in React: русскоязычное сообщество
как вариант, или можно синглтон для глобального индекса сделать.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Посмотрел? Молодец, теперь как в квантовой механике, он не последний
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
The Fallen Phoenix
const createIdGetter=(i=0)=>()=>i++;
Эта штука работает там где ей скажут. Если скажут в шапке модуля, будет локальный для модуля id.
источник

KS

Konstantin Sedykh in React: русскоязычное сообщество
The Fallen Phoenix
Избавляет от компульсивного желания посмотреть последний id
вот это точно сохраню. 👍
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Если внутри тела функции, то локальные для созданного замыкания
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Ну если специально не выносить ее никуда
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Ну раз пошла такая пъянка
function createEnumerator() {
 const state = new WeakMap()
 var recent = 0;
 return function(object) {
    if (typeof object !== "object") throw;
    if (!state.has(object)) state.set(object, ++recent);
    return state.get(object)
 }
}
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
const o = {}
const a = {}
const body = document.body
const getId = createEnumerator()
console.log(getId(o)) // 1
console.log(getId(o)) // 1
console.log(getId(a)) // 2
console.log(getId(o)) // 1
console.log(getId(body)) // 3
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
При этом не мешая сборщику мусора удалять объекты
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Пример тривиально расширяется до создания геттера для "состояния поверх состояния"
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Например объект может хранить у себя геттер на такой слой и называть другие объекты похабными словами
источник