cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

WebCoder | Frontend

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

Show more
The country is not specifiedThe language is not specifiedThe category is not specified
Advertising posts
2 302
Subscribers
No data24 hours
No data7 days
No data30 days

Data loading in progress...

Subscriber growth rate

Data loading in progress...

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

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

Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
Нужен человек на удалёнку для работы в Telegram каналах! ЗП от 100 тысяч!   В Влад про Telegram БЕСПЛАТНО рассказывают: — Как заработать за первую неделю — Как создать свой успешных Telegram канал — Как с 0 руб. выйти на доход 100 000 руб/мес Знания и опыт не нужны — ты подпишешься на этот канал и за 1 месяц заработаешь на приличный отпуск:
Show all...
Подписаться
👆а вообще за копирование объектов через сериализацию в JSON и обратно могут хорошо бить по-жопе осудить более опытные коллеги
Show all...
Поверхностное и глубокое клонирование объектов в 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
Show all...
Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
Python пришел в телеграм! Python — второй по популярности язык в мире. Он очень универсален: можно писать сайты, а можно искусственный интеллект. Теперь у Python есть русскоязычный канал. Это первоисточник всего, что появляется в платных курсах и остальных ресурсах. Стоит подписаться!
Show all...
Перейти
React Reconciliation (Согласование) - насколько хорошо вы знаете как оно работает ? Во время работы со списками в приложениях, написанных на React Js, вы сталкивались с тем, как консоль браузера настойчиво рекомендует вам присвоить каждому элементу списка уникальный проп key, мотивируя это улучшением производительности? В сегодняшнем видео, которое я предлагаю вашему вниманию, подробно раскрывается тема работы алгоритма согласования и каким образом достигается эта самая производительность
Show all...
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 сферы (социальные / технические), а также для тех кому короткая видео выжимка статьи, выступления на конференции или же просто личных мыслей, являются более удобным форматом

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

Your current plan allows analytics for only 5 channels. To get more, please choose a different plan.