я просто оставлю это здесь
export const usePreviousPersistent = <TValue extends unknown>(https://www.developerway.com/posts/implementing-advanced-use-previous-hook
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;
};
Developerway
Implementing advanced usePrevious hook with React useRef
Looking into how refs work when not attached to DOM and how to use them to implement advanced usePrevious hook to get the previous state or props value.
👍1
when React components re-render:
• when component's state changed
• when parent component re-renders
• when a component uses context and the value of its provider changes
• when component's state changed
• when parent component re-renders
• when a component uses context and the value of its provider changes
нарисовала граф, сделала к нему таблицу, потом нарисовала тот же граф по таблице
граф здорового человека/граф курильщика
граф здорового человека/граф курильщика
code_notes pinned «когда-то я готовилась к собеседованиям по вот этому списку задачек https://github.com/lydiahallie/javascript-questions/blob/master/ru-RU/README.md»
code_notes pinned «https://ru.hexlet.io/blog/posts/grokaem-algoritmy-gayd-po-algoritmam-dlya-teh-komu-slozhno-reshat-zadachi»
я отвернулась и в css добавили новую киллер-фичу
@layer
по-русски "каскадные слои"
теперь мы можем создавать свои слои вдобавок к существующим (user agent styles, user styles, author styles (те которые мы меняем))
в каскадных слоях важен порядок объявления — чем позже объявлен слой, тем он специфичнее
можно объявить все названия слоёв в начале документа чтобы не путаться
@layer
по-русски "каскадные слои"
теперь мы можем создавать свои слои вдобавок к существующим (user agent styles, user styles, author styles (те которые мы меняем))
в каскадных слоях важен порядок объявления — чем позже объявлен слой, тем он специфичнее
можно объявить все названия слоёв в начале документа чтобы не путаться
@layer reset, framework, layout, base;запутанный момент —
!important
правила, объявленные через important действуют в обратном порядке — important в слое reset будет специфичнее important в слое basevar status = '😎'
setTimeout(() => {
const status = '😍'
const data = {
status: '🥑',
getStatus() {
return this.status
}
}
console.log(data.getStatus())
console.log(data.getStatus.call(this))
}, 0)
🥑 😎