code_notes
https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif отличная статья про ивент луп
https://www.jsv9000.app/
песочница для ивент-лупа, макротасок/микротасок
красивое
мой код для примера
песочница для ивент-лупа, макротасок/микротасок
красивое
мой код для примера
console.log('first')
Promise.resolve().then(function promise() { console.log('second')})
setTimeout(function time() {console.log('third'), 5000})отличия map от weakmap
ключи
map любого типа
weakmap только объекты
итерация и методы keys(), values(), entries()
map поддерживает
weakmap не поддерживает
это происходит пушто garbage collector удаляет из weakmap пары ключ-значение если на ключ (который очевидно объект) больше нет ссылок
поскольку garbage collector делает это довольно непредсказуемо, weakmap не поддерживает итерацию
ключи
map любого типа
weakmap только объекты
итерация и методы keys(), values(), entries()
map поддерживает
weakmap не поддерживает
это происходит пушто garbage collector удаляет из weakmap пары ключ-значение если на ключ (который очевидно объект) больше нет ссылок
поскольку garbage collector делает это довольно непредсказуемо, weakmap не поддерживает итерацию
отличия set от weakset
set данные любого типа
weakset только объекты
weakset не поддерживает итерации, size, keys()
set данные любого типа
weakset только объекты
weakset не поддерживает итерации, size, keys()
critical path
css is render blocking (because of the cascade)
https://cdn.searchenginejournal.com/wp-content/uploads/2022/01/critical-rendering-path-example-61f038a0a5944-sej.png
css is render blocking (because of the cascade)
https://cdn.searchenginejournal.com/wp-content/uploads/2022/01/critical-rendering-path-example-61f038a0a5944-sej.png
разница между атрибутами тега script (async/defer)
- порядок скриптов defer сохраняется браузером
- скрипт с defer сработает только после того как весь html документ будет обработан браузером
- порядок скриптов defer сохраняется браузером
- скрипт с defer сработает только после того как весь html документ будет обработан браузером
cors — cross origin resource sharing
http-based header mechanism that allows to server to indicate any origins (domains) other than its own and allow loading resources
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
http-based header mechanism that allows to server to indicate any origins (domains) other than its own and allow loading resources
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
MDN Web Docs
Cross-Origin Resource Sharing (CORS) - HTTP | MDN
Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources. CORS also relies on a mechanism by which…
jwt token
содержит:
- header
- payload
- signature
header & payload — обычные json-объекты, их нужно закодировать через base64url
Закодированные части соединяются друг с другом, и на их основе вычисляется подпись, которая также становится частью токена
содержит:
- header
- payload
- signature
header & payload — обычные json-объекты, их нужно закодировать через base64url
Закодированные части соединяются друг с другом, и на их основе вычисляется подпись, которая также становится частью токена
🔥1
реакт компонент перерендеривает своих детей если перерендеривается сам
pure-компонент перерендеривается только если у него изменились пропсы
pure-компонент перерендеривается только если у него изменились пропсы
отключить error overlay можно добавлением в webpack.dev.js:
devServer: {
client: {
overlay: false,
},🔥2
code_notes
как сделать кондишинал реакт проп type TruncateProps = | { truncate?: false; showExpanded?: never } | { truncate: true; showExpanded?: boolean } https://www.benmvp.com/blog/conditional-react-props-typescript/
conditional props версия 2 (в этот раз у меня заработало)
https://dev.to/maissenayed/conditional-react-props-with-typescript-43lg
interface CommonProps {
children?: React.ReactNode
// ...other props that always exist
}
type ConditionalProps =
| {
icon?: JSX.Element;
src?: never;
}
| {
icon?: never;
src?: string;
};
type Props = CommonProps & ConditionalProps https://dev.to/maissenayed/conditional-react-props-with-typescript-43lg
DEV Community
Conditional React props with TypeScript
A prop which should only be set when another prop has a specific value. Relationships between...
3 way merge editor in vs code can be turned off by
https://stackoverflow.com/a/73277865/11043392
git.mergeEditor: false in settings.jsonhttps://stackoverflow.com/a/73277865/11043392
Stack Overflow
How to change VS Code's merge conflict layout?
I use VS CODE for version control (using git).
Every time I had a conflict, VS CODE showed me with a layout where I could see all the changes in one window:
However, with no advice, it change to a...
Every time I had a conflict, VS CODE showed me with a layout where I could see all the changes in one window:
However, with no advice, it change to a...
узнала сегодня про Reflect object
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect
неоч понятно зачем он нужен, встретила в контексте работы с прокси
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)
}
})новые (для меня) хуки в реакте
useImperativeHandle — позволяет прокинуть коллбэк/объект со стейтом в родительский компонент через реф
useDebugValue — вешает лейбл на кастомный хук в реакт-девтулзах
useId — генерит id
useImperativeHandle — позволяет прокинуть коллбэк/объект со стейтом в родительский компонент через реф
useDebugValue — вешает лейбл на кастомный хук в реакт-девтулзах
useId — генерит id
👍1