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

обратная связь: t.me/dmorenogogoleva
Download Telegram
элементы
A React element is a plain JavaScript object. It can describe a host instance
React elements are immutable
React’s job is to make the host tree match the provided React element tree
системы нужно не строить а наращивать
реакт знает обо всех детях конкретного элемента и поэтому добавление/удаления верхнего элемента, сдвигает нижние, а не пересоздаёт их
https://overreacted.io/react-as-a-ui-runtime/#conditions
This is why we say reconciliation is recursive. When React walks the element tree, it might meet an element whose type is a component. It will call it and keep descending down the tree of returned React elements. Eventually, we’ll run out of components, and React will know what to change in the host tree.

(реакт спускается по дереву элементов, и когда видит компонент, то продолжает спускаться уже по его дереву элементов)
Why Do We Write super(props)

super(props) ссылается к родительскому конструктору. привязывает родительские методы к дочернему элементу

если мы не прокидываем props, то они всё равно привяжутся из родительского конструктора, но только после того, как весь конструктор запустится

constructor(props) {
super(); // 😬 We forgot to pass props
console.log(props); // {}
console.log(this.props); // 😬 undefined
}


Without an explicit constructor, all arguments are passed down automatically.
crossorigin html attribute allow using external image in canvas

(The crossorigin attribute is a CORS settings attribute. Its purpose is to allow images from third-party sites that allow cross-origin access to be used with canvas)
главная идея прототипного наследования заключается в том что объект может указывать на другой объект и наследовать все его свойства
главная цель в том чтобы позволить множеству экземпляров объекта использовать общие свойства
this это указатель на текущий объект
promise это объект который содержит своё состояние. у промиса бывает три типа состояния:
pending, fulfilled, rejected
Способ использования, в общих чертах, такой:
1 Код, которому надо сделать что-то асинхронно, создаёт объект promise и возвращает его.
2 Внешний код, получив promise, навешивает на него обработчики.
3 По завершении процесса асинхронный код переводит promise в состояние fulfilled (с результатом) или rejected (с ошибкой). При этом автоматически вызываются соответствующие обработчики во внешнем коде.
в js переменные не имеют типа, тип имеют только значения, хранящиеся в переменных

var a;
typeof a; // "undefined"

a = "hello world";
typeof a; // "string"

a = 42;
typeof a; // "number"
a = null;
typeof a; // "object"
массивы и функции стоит рассматривать как подтипы объектов
== проверяет только значения
=== проверяет значения и типы
на самом деле всё немного сложнее

== сравнивает, приводя типы друг к другу
=== не приводит типы друг к другу
чтобы получить pure component в функциональном компоненте нужно его весь завернуть в React.memo