Nano Hash - криптовалюты, майнинг, программирование

Разница между «приложением функции ()» и «приложением класса расширяет компонент» в родном реагировании

Я только что изучаю реагировать на нативные, и есть одна вещь, которую я до сих пор не понимаю и не знаю разницы между «function App () { return () }» и «class App extends Component { render (); возврат(...)}'. Я знаю, что в первом я использую «useState», а во втором — «state», но наверняка есть гораздо больше различий, на которые я не могу найти хороший ответ. И я имею в виду не только в «App.js», но и в каждом файле js. Я видел много руководств, и каждый раз, когда парень использует один из них случайным образом, я не мог найти правила, чтобы знать, когда использовать каждый из них, так в чем же разница между ними и когда использовать каждый из них?


Ответы:


1

Я пишу с самого первого объяснения, но знаю, что вы их уже знаете.

В javascript есть несколько типов функций. обычные функции, начинающиеся со строчной буквы, и функция-конструктор, начинающаяся с прописной буквы. конструкторы используются для создания объектов. Их функции делают большой объект.

конструктор Пример:

    function Car(color){
      this.color = color;
      this.drive = () => console.log('driving');
    }

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

Пример класса:

    class Car = {
      constructor(color){
        this.color = color;
      }

      this.drive = () => console.log('driving');
    }

Компонент в React — это предварительно созданный класс, и когда вы пишете класс, подобный классу App, расширяет React.Component, вы делаете класс приложения компонентом. теперь, когда вы пишете render(){ return(**) } внутри компонента приложения, вы предоставляете расширенному компоненту новую функциональность, фактически обновляя метод рендеринга на новый.

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

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

Вывод: они оба одинаковы с точки зрения функциональности, но в функциональных компонентах нет расширенных методов, таких как componentDidMount, componentDidUpdate, ..., но вместо этого вы можете использовать хуки React.

25.07.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..