Задать вопрос
@Mcrx

Два вопроса по props и PureComponent react?

Не пойму как и зачем используется props в constructor и super, я сначала думал для того чтоб иметь доступ к пропсам которые прокинули с родительского компонента, но всё работает и без этого, тогда зачем это нужно? Второй вопрос, когда и для чего используют PureComponent?
  • Вопрос задан
  • 1590 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
Вот для чего используют пропсы в конструктере
Passing:

class MyComponent extends React.Component {    
    constructor(props) {
        super(props)

        console.log(this.props)
        // -> { icon: 'home', … }
    }
}
Not passing:

class MyComponent extends React.Component {    
    constructor(props) {
        super()

        console.log(this.props)
        // -> undefined

        // Props parameter is still available
        console.log(props)
        // -> { icon: 'home', … }
    }

    render() {
        // No difference outside constructor
        console.log(this.props)
        // -> { icon: 'home', … }
    }
}


Для чего используют pure components: https://habrahabr.ru/company/redmadrobot/blog/318222/
Ответ написан
kentuck1213
@kentuck1213
https://reactjs.org/docs/react-component.html#cons...

The constructor for a React component is called before it is mounted. When implementing the constructor for a React.Component subclass, you should call super(props) before any other statement. Otherwise, this.props will be undefined in the constructor, which can lead to bugs.


На счет PureComponent, встречал такой термин когда использовал Redux почитать можно тут:
https://medium.com/@dan_abramov/smart-and-dumb-com...
Ответ написан
Комментировать
@undefined_title
super - это функция(класс) от которой ты наследуешься, super(props) это функциональное наледование которое добавляет пропсы как поля в контекст функции то есть твоему новому объекту
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы