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