code_notes
71 subscribers
136 photos
1 video
134 links
учусь делать веб

обратная связь: t.me/dmorenogogoleva
Download Telegram
отличия map от weakmap

ключи
map любого типа
weakmap только объекты

итерация и методы keys(), values(), entries()
map поддерживает
weakmap не поддерживает

это происходит пушто garbage collector удаляет из weakmap пары ключ-значение если на ключ (который очевидно объект) больше нет ссылок
поскольку garbage collector делает это довольно непредсказуемо, weakmap не поддерживает итерацию
отличия set от weakset

set данные любого типа
weakset только объекты

weakset не поддерживает итерации, size, keys()
code_notes pinned a photo
разница между атрибутами тега script (async/defer)

- порядок скриптов defer сохраняется браузером
- скрипт с defer сработает только после того как весь html документ будет обработан браузером
jwt token

содержит:
- header
- payload
- signature

header & payload — обычные json-объекты, их нужно закодировать через base64url

Закодированные части соединяются друг с другом, и на их основе вычисляется подпись, которая также становится частью токена
🔥1
реакт компонент перерендеривает своих детей если перерендеривается сам

pure-компонент перерендеривается только если у него изменились пропсы
отключить error overlay можно добавлением в webpack.dev.js:

  devServer: {
client: {
overlay: false,
},
🔥2
узнала сегодня про Reflect object

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect

неоч понятно зачем он нужен, встретила в контексте работы с прокси

const person = {
name: "Julia",
age: 30
}

const personProxy = new Proxy(person, {
get: (obj, prop) => {
console.log(`The value of ${prop} is ${Reflect.get(obj, prop)}`)
},
set: (obj, prop, value) => {
console.log(`Changed ${prop} to ${value}`)
return Reflect.set(obj, prop, value)
}
})
code_notes pinned a photo
новые (для меня) хуки в реакте


useImperativeHandle — позволяет прокинуть коллбэк/объект со стейтом в родительский компонент через реф

useDebugValue — вешает лейбл на кастомный хук в реакт-девтулзах

useId — генерит id
👍1
useDebugValue
Forwarded from Daria Moreno-Gogoleva
так, я разобралась с useDebugValue

он работает, только в кастомных хуках, которые используют другие хуки......... что логично пушто хук без хуков это просто функция
я просто оставлю это здесь

export const usePreviousPersistent = <TValue extends unknown>(
value: TValue
) => {
const ref = useRef<{ value: TValue; prev: TValue | null }>({
value: value,
prev: null
});

const current = ref.current.value;

if (!isEqual(value, current)) {
ref.current = {
value: value,
prev: current
};
}

return ref.current.prev;
};

https://www.developerway.com/posts/implementing-advanced-use-previous-hook
👍1