Рубрики
Без рубрики

Вопрос на интервью на интервью: что делает в браузере, компонент или элемент?

** Хитрый вопрос ** Вы можете не понравиться ответ, потому что, к сожалению, это немного сложно. Разве сложное элемент синонимирует словом компонент в любом случае ?? Форма restjs.orgupdate: Эта статья теперь является частью моей книги «React.js за пределы оснований». Прочитайте обновленную версию этого контента и

** Хитрый вопрос **

Вы можете не понравиться ответ, потому что, к сожалению, это немного сложно.

Технически говоря, Reactry не представляет компонент реагирования или реактивный элемент в доме. Это делает DOM элементы, поддерживаемые экземплярами их компонентов Отказ Это верно для классов компонентов. Для функциональных компонентов реактоз рендурирует просто DOM-элементы. У компонентов функций нет экземпляров (которые могут быть доступны с помощью это ), поэтому при использовании функционального компонента взаимодействие рендурирует элемент DOM, генерируемый из возвращаемого элемента функции.

То, что вам нужно понять, так это то, что элемент реагирования отличается от элемента DOM. Элемент React – это просто Описание элемента HTML, компонента реагирования или смесь этих.

Хорошо, может быть лучший интервью: Когда вы используете что-то вроде /> в JSX, это компонент, элемент или INS Танс?

Это Элемент Но не элемент DOM. Это элемент реагирования. Подсказка вот что любой тег JSX переводится на Rect.Createelement вызов. Запомни. СОЗДАЙТЕ. Элемент Отказ

Однако для реагирования на продолжение работы с этим реагирующим элементом он придется либо вызывать функцию, либо создать экземпляр из класса.

Вы можете найти слова составная часть , Элемент и экземпляр Перепутано в направляющих и учебниках реагирования и учебниками. Я виновен в смешивании этих слов сам, но я думаю, что начинающий учащийся реагирования должен понимать важные различия. Блог React имеет Опубликовать об этой теме Но что я думаю, что это слишком техничен для новичка.

Вот как я бы предоставил простые определения этого слова для начинающих:

  • Реагировать Компонент это шаблон. План. Глобальное определение. Это может быть либо Функция или класс (с функцией рендера).
  • Реагировать Элемент это то, что получает Вернулся от компонентов. Это объект, который практически описывает узлы DOM, которые представляют компонент. С помощью функционального компонента этот элемент является объектом, который функция возвращает. Со компонентом класса элемент – это объект, который возвращает функцию компонента. Реактивные элементы не то, что мы видим в браузере. Они просто объекты в памяти, и мы не можем ничего изменить о них.
  • Реагировать внутренне создает, обновления и уничтожает экземпляры Чтобы выяснить дерево элементов DOM, которое необходимо отображать в браузере. При работе с классовыми компонентами рекомендуется обратиться к своим элементам DOM в браузере в качестве экземпляров компонентов. Вы можете представлять многие экземпляры того же компонента. Экземпляр – это ключевое слово « это », которое вы используете внутри компонентов на основе классов. Вам не нужно было бы создавать экземпляр из класса вручную. Вам просто нужно помнить, что он там где-то в памяти Rection.
  • Элементы реагирования на основе функций не имеют экземпляров. Функциональный компонент все еще может быть представлен несколько раз, но React не связан с локальным экземпляром с каждым визуализацией. Он просто использует вызов функции для определения того, какой элемент DOM для рендеринга для функции.

Нижняя строка заключается в том, что взаимодействие не представляет компоненты в браузере, и он либо не представляет элементы (в смысле сохранения термина элемента для представления результата raction.createelement ). Это также не представляет никаких случаев. Оказывает DOM элементы.

К сожалению, кажется, что есть обычная практика, чтобы использовать термин компонент, чтобы означать как шаблон, так и любые экземпляры или вызовы, используемые, хотя шаблон. Я не виню кого-нибудь за путать здесь. Это немного больно.

Какая здесь история?

Каждое приложение React начинается с оказывать Вызов, который использует Элемент реагирования Отказ Давайте использовать Hellomessage Пример от Reactjs.org Слегка модифицирована, чтобы иметь функциональный компонент, а также:

const Today = () => (  
Today is {new Date().toDateString()}
);
class HelloMessage extends React.Component {  render() {    return (              
Hello {this.props.name}
); }}
ReactDOM.render(  ,  mountNode);

Первый элемент реагирования – тот, который мы начинаем с Reactom.runder вызов:

 // This is a React element

Этот реактивный элемент описывает, что рендурируется дерево DOM должно начинаться с Hellomessage Компонент и A Имя Значение опоры, которое равно Тейлор Отказ

Реагировать сейчас необходимо ответить на вопрос: Что такое Hellomessage. ?

Каждый раз, когда элемент React описывает компонент реагирования (например, элемент реагирования, который мы имеем выше), отреагируйте, используют компонент для замены этого описания с помощью того, что возвращает компонент. Это создает экземпляр для компонентов на основе классовых компонентов на данный момент и сохраняет ссылку на то, что в памяти. Это не создает ничего для компонентов на основе функций; Это просто вызывает их.

Что возвращается из Hellomessage Компонент представляет собой реактивный элемент, который описывает Реагировать. Фрагмент составная часть.

Реагировать сейчас необходимо ответить на вопрос: Что такое Реагировать. Фрагмент ?

Реагистрация будет продолжать уменьшить эти неизвестные описания компонентов до тех пор, пока он не имеет только допустимых узлов DOM. Описание Реагировать. Фрагмент переводится на 2 элемента реагирования, один описывающий Div И еще один описывающий Сегодня составная часть.

Реагировать сейчас необходимо ответить на вопрос: Что такое Сегодня ?

Это называет Сегодня Функция, чтобы понять этот последний вопрос. Сегодня Функция Возвращает реактивный элемент, который описывает Div Отказ

На данный момент виртуальное дерево в комплекте со всеми реактивными элементами, которые описывают узлы DOM. Реагирование использует его алгоритм примирения, чтобы выяснить, что обновить в браузере. Узлы, которые были переведены с экземпляром компонента, сохраняют мощность модификации этого экземпляра.

Это немного ясно, или я путал термины немного больше? Дайте мне знать в ответах ниже.

Спасибо за прочтение.

Изучение реагировать или узел? Оформить заказ моих книг:

Оригинал: “https://www.freecodecamp.org/news/react-interview-question-what-gets-rendered-in-the-browser-a-component-or-an-element-1b3eac777c85/”