cookie

Мы используем файлы cookie для улучшения сервиса. Нажав кнопку «Принять все», вы соглашаетесь с использованием cookies.

avatar

WebCoder | Frontend

Авторский канал по фронтенду Реклама: @vvladimirovv @Dmitryneg @Shepelev_DmV Главный: @vvladimirovv

Больше
Страна не указанаЯзык не указанКатегория не указана
Рекламные посты
2 302
Подписчики
Нет данных24 часа
Нет данных7 дней
Нет данных30 дней

Загрузка данных...

Прирост подписчиков

Загрузка данных...

Фото недоступноПоказать в Telegram
Как программисту работать в кризис? Чтобы не словить выгорание, запасись свежими полезнозностями о разработке и начинай увеличивать чек. Это Джун Джунович, твой проводник в сфере IT. Подпишись: @junovich
Показать все...
Почему заработать миллион за месяц — просто? Без криминала, казино и «стопроцентных» схем. По статистике, 98% людей ассоциируют финансовый успех с преступной деятельностью, везением или фактом рождения в богатой семье. Выиграть в лотерее, конечно, можно, но более вероятно заработать большие деньги, ведя собственный бизнес. Личные Финансы — первый канал про реальный бизнес в России. Автор, действующий предприниматель, на примерах из собственной практики рассказывает: 💥Как запустить бизнес с любым (даже нулевым) бюджетом; 💥Способы монетизировать сегодняшний кризис в РФ; 💥Готовые и нестандартные стартап-идеи. С подпиской на Личные Финансы у вас не останется возможности не разбогатеть
Показать все...
Личные финансы • Про Бизнес

Финансово независим каждый, кто над этим работает. Тут про: — управление личными финансами — психологию денег

Фото недоступноПоказать в Telegram
Фото недоступноПоказать в Telegram
Нужен человек на удалёнку для работы в Telegram каналах! ЗП от 100 тысяч!   В Влад про Telegram БЕСПЛАТНО рассказывают: — Как заработать за первую неделю — Как создать свой успешных Telegram канал — Как с 0 руб. выйти на доход 100 000 руб/мес Знания и опыт не нужны — ты подпишешься на этот канал и за 1 месяц заработаешь на приличный отпуск:
Показать все...
Подписаться
👆а вообще за копирование объектов через сериализацию в JSON и обратно могут хорошо бить по-жопе осудить более опытные коллеги
Показать все...
Поверхностное и глубокое клонирование объектов в JS Если у нас стоит задача скопировать простой объект и массив, то проблем не возникает, например:
 simpleObj = {
  fieldOne: 1,
  fieldTwo: 2,
  fieldThree: 3,
};

console.log(simpleObj);
// простой объект  - {fieldOne: 1, fieldTwo: 2, fieldThree: 3,}

const simpleObjectCopy = {... simpleObj}; // используем spread для копирования простого объекта

console.log(simpleObjectCopy);
//клонированный простой объект -  {fieldOne: 1, fieldTwo: 2, fieldThree: 3,}

simpleObjectCopy.fieldOne = 2; //изменим значение первого поля в копированном объекте, чтоб убедится что эти два объекта не связаны

console.log(simpleObj); // {fieldOne: 1, fieldTwo: 2, fieldThree: 3,}
console.log(simpleObjectCopy); // {fieldOne: 2, fieldTwo: 2, fieldThree: 3,}

Но что если у нас более сложный объект или массив (объект внутри которого другой объект или массив с объектами как в примере) const foodInCart = [ { product: 'Агава', quantity: 3}, { product: 'Апельсин', quantity: 1 }, { product: 'Дыня', quantity: 1 }, ] const clonedCart = [...foodInCart] console.log(clonedCart); // [ // { product: 'Агава', quantity: 3 }, // { product: 'Апельсин', quantity: 1 }, // { product: 'Дыня', quantity: 1 }, // ]
 = 5 // изменяем поле "количество" в объекте под индексом 1 

console.log(clonedCart)
// [
//    { product: 'Агава', quantity: 3 },
//    { product: 'Апельсин', quantity: 5 },
//    { product: 'Дыня', quantity: 1 },
// ]

console.log(foodInCart)
// [
//    { product: 'Агава', quantity: 3 },
//    { product: 'Апельсин', quantity: 5 },
//    { product: 'Дыня', quantity: 1 },
// ]

Как мы видим количество апельсинов поменялось сразу в двух объектах, как мы с вами знаем непримитивные типы данных, хранятся по ссылке. Так как мы произвели поверхностное копирование, то мы просто скопировали ссылки на старый объект в новый массив. Таким образом, "разные" массивы ссылаются на одни и те же объекты в памяти:
 === clonedCart[1]); //true

JavaScript не имеет отдельных функций для глубокого копирования массивов или объектов. Существуют различные способы сделать глубокое копирование. Можно написать функцию глубокого копирования вручную. Скорее всего ваша функция будет рекурсивной, и она будет работать только для конкретных данных — написать универсальную функцию не так-то просто. Так же можно сериализировать копируемый объект в JSON и распарсить его : const deepClone = JSON.parse(JSON.stringify(foodInCart)) console.log(foodInCart[1] === deepClone[1]) // false Но данный метод не идеальный, потому что копируемые данные должны быть сериализуемыми. Если у объекта существуют методы или массив содержит функции, то копирование не сработает. Еще один способ это воспользоваться популярной библиотекой утилит lodash
Показать все...
Фото недоступноПоказать в Telegram
Фото недоступноПоказать в Telegram
Python пришел в телеграм! Python — второй по популярности язык в мире. Он очень универсален: можно писать сайты, а можно искусственный интеллект. Теперь у Python есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсах. Стоит подписаться!
Показать все...
Перейти
React Reconciliation (Согласование) - насколько хорошо вы знаете как оно работает ? Во время работы со списками в приложениях, написанных на React Js, вы сталкивались с тем, как консоль браузера настойчиво рекомендует вам присвоить каждому элементу списка уникальный проп key, мотивируя это улучшением производительности? В сегодняшнем видео, которое я предлагаю вашему вниманию, подробно раскрывается тема работы алгоритма согласования и каким образом достигается эта самая производительность
Показать все...
React Reconciliation

Данный выпуск посвящен ключевому алгоритму реакта "React Reconciliation". Именно он определяет разницу деревьев между обновлениями. Именно он делает так, что практически при любом количестве изменений вы получите заветные 60 кадров в секунду. И именно он настолько пере используем, чтобы работать как для React Native так и для браузера React Reconciliation -

https://reactjs.org/docs/reconciliation.html

React Fiber Architecture -

https://github.com/acdlite/react-fiber-architecture

ReactNext 2016 "What is React Fiber?" -

https://youtu.be/aV1271hd9ew

Эвристический алгоритм -

https://ru.wikipedia.org/wiki/%D0%AD%D0%B2%D1%80%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC

List of priorities -

https://github.com/facebook/react/blob/master/packages/scheduler/src/SchedulerPriorities.js#L13

List of priority timeouts -

https://github.com/facebook/react/blob/master/packages/scheduler/src/Scheduler.js#L53

Unstable exports -

https://github.com/facebook/react/blob/master/packages/scheduler/src/Scheduler.js#L421

One more list of priorities -

https://github.com/facebook/react/blob/master/packages/react-reconciler/src/SchedulerWithReactIntegration.new.js#L54

Поддержать Айти Синяка можно здесь: YouTube:

https://www.youtube.com/channel/UClgj-KWiNaOo9H1rz1ISO6Q/join

boosty:

https://boosty.to/sin9k

Patreon:

https://www.patreon.com/ITSin9k

Таймкоды: 00:00 - Объявление темы 00:46 - Источники информации 01:07 - Короткое определение "Reconciliation" 01:19 - Как React на самом деле работает 02:36 - React DOM and RN rendering 03:01 - Алгоритм сравнения деревьев 03:38 - Определение "Эвристический алгоритм" 04:21 - Общий пример изменения типов 04:45 - Боевой пример изменения типов 08:00 - Приоритизация DOM операций 08:55 - Приоритизация базируется на 2 функциях 09:15 - Реализация приоритизации на GitHub 10:24 - React Fiber intro 11:03 - Вывод 11:22 - Подписывайтесь! 11:33 - Рекомендованные видео Подписаться на канал:

https://www.youtube.com/channel/UClgj-KWiNaOo9H1rz1ISO6Q?sub_confirmation=1

Twitter:

https://twitter.com/it_sin9k

------------------------- Данный канал создан для инициирования бесед на различные темы IT сферы (социальные / технические), а также для тех кому короткая видео выжимка статьи, выступления на конференции или же просто личных мыслей, являются более удобным форматом

Фото недоступноПоказать в Telegram
Как вы станете высокооплачиваемым разработчиком с хреновым английским? Что такое dependency inversion, shard allocation, wysiwyg, kiss principle? А весь топовый контент сейчас онли ин инглиш. Срочно подпишись на РуинглишDev если не знаешь этих базовых терминов. Автор - Senior Sofrware Developer даст вам информацию без воды. Начать understand инглиш за 5 минут в день: @RuEnglish_Devs
Показать все...
Выберите другой тариф

Ваш текущий тарифный план позволяет посмотреть аналитику только 5 каналов. Чтобы получить больше, выберите другой план.