Size: a a a

React — русскоговорящее сообщество

2020 November 13

NN

Nurbek Nurjanov in React — русскоговорящее сообщество
Vladimir Klimov
Вы точно так же вызываете метод родителя, который будет менять его состояние, просто назвали это иначе.
Совершенно верно подметили. Но я это делаю ТОЛЬКО для ПЕРЕДАЧИ ДАННЫХ ВВЕРХ.
Но никак не для "оперирования" состоянием родителя
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Nurbek Nurjanov
Совершенно верно подметили. Но я это делаю ТОЛЬКО для ПЕРЕДАЧИ ДАННЫХ ВВЕРХ.
Но никак не для "оперирования" состоянием родителя
А вы и не должны оперировать состоянием родителя, компонент о состоянии родителя ничего не знает, он знает только свои пропы.
Это родитель передает колбек, в котором оперирует собственным состоянием
источник

NN

Nurbek Nurjanov in React — русскоговорящее сообщество
Vladimir Klimov
А вы и не должны оперировать состоянием родителя, компонент о состоянии родителя ничего не знает, он знает только свои пропы.
Это родитель передает колбек, в котором оперирует собственным состоянием
значит это совершенно нормально если родитель дает функцию которая меняет ее состояние ребенку
А ребенок получив  ее как пропс вызывает у себя внутри эту функцию
да ?
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Nurbek Nurjanov
значит это совершенно нормально если родитель дает функцию которая меняет ее состояние ребенку
А ребенок получив  ее как пропс вызывает у себя внутри эту функцию
да ?
Да, ведь ребенок никак не зависит в таком случае от состояния родителя, он просто вызывает переданную функцию, причем ее декларирует сам
источник

NN

Nurbek Nurjanov in React — русскоговорящее сообщество
Vladimir Klimov
Да, ведь ребенок никак не зависит в таком случае от состояния родителя, он просто вызывает переданную функцию, причем ее декларирует сам
ясно, ок, спс
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Nurbek Nurjanov
ясно, ок, спс
Просто может у вас был какой-то частный случай, в котором действительно написано плохо, такое тоже может быть
источник

NN

Nurbek Nurjanov in React — русскоговорящее сообщество
Vladimir Klimov
Просто может у вас был какой-то частный случай, в котором действительно написано плохо, такое тоже может быть
Впринципе я не собираюсь радикально что то менять.
У меня тот же принцип. Передача функции родителя потомку как пропс.
Разница лишь в том что мои функции
a) называются importData и exportData
b) они занимаются ТОЛЬКО ПЕРЕДАЧЕЙ ДАННЫХ, не вычислениями и тем подобным

А него методы называются doSomethingOfParentLogic
и естественно когда $childComponent->doSomethingOfParentLogic()
у меня ощущение что child компонент как бы за родителя делает его дело
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Nurbek Nurjanov
делаю метод у родителя
listenData
у потомка делаю pushData
внутри pushData(){
this.props.listenData(какие то данные)
}
Ничем не отличается от способа вашего колеги
источник

NN

Nurbek Nurjanov in React — русскоговорящее сообщество
Dmitriy Shuleshov
Ничем не отличается от способа вашего колеги
немного отличие есть. в названии и тем чем они занимаются. Только передачой данных ввверх. Но не вычислениями

технология да одна и та же, не спорю
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Nurbek Nurjanov
немного отличие есть. в названии и тем чем они занимаются. Только передачой данных ввверх. Но не вычислениями

технология да одна и та же, не спорю
doSomethingOfParentLogic()

Этот вариант лучше так как иначе мы скатимся в вуевский эммит событий
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Nurbek Nurjanov
немного отличие есть. в названии и тем чем они занимаются. Только передачой данных ввверх. Но не вычислениями

технология да одна и та же, не спорю
Вам надо смотреть каждый частный случай, например, кнопка не должна принимать функцию "printMessageOnScreenOnClick", кнопка просто должна принимать функцию onClick, а что при этом делать - конечно, решает родитель.
источник

NN

Nurbek Nurjanov in React — русскоговорящее сообщество
Dmitriy Shuleshov
doSomethingOfParentLogic()

Этот вариант лучше так как иначе мы скатимся в вуевский эммит событий
вот вот. А чем плох эмиты vue
вот они более строго к этому подошли имхо. более понятнее что ли. но конечно кто как привык. Но у vue эмит имхо правильней кажется
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Dmitriy Shuleshov
doSomethingOfParentLogic()

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

VK

Vladimir Klimov in React — русскоговорящее сообщество
Nurbek Nurjanov
вот вот. А чем плох эмиты vue
вот они более строго к этому подошли имхо. более понятнее что ли. но конечно кто как привык. Но у vue эмит имхо правильней кажется
Там подход другой, в реакте нету своих событий в принципе.
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Vladimir Klimov
Вуевские события имеют право на жизнь, мне кажется, просто там изначально подход такой, почему это плохо?
Ясно, что на реакт этого не натянешь
Ну посмотри Климова про то как они начинают фигней в композишен с событиями страдать и изза чего эта абстаркция становится неявной
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Dmitriy Shuleshov
Ну посмотри Климова про то как они начинают фигней в композишен с событиями страдать и изза чего эта абстаркция становится неявной
Не, то, что во вью проблем столько же, сколько способов сделать одно и то же - это да, но сама концепция событий норм же
Просто там куча способов что-то сделать, и надо знать когда какой применить, в реакте все просто - функции передаем вниз
источник

VP

Vitaliy Ponomarev in React — русскоговорящее сообщество
Vladimir Klimov
Там подход другой, в реакте нету своих событий в принципе.
тут с контекстом-то постоянные холивары "stm - props - context - hooks" в разных сочетаниях

а если бы в это всё еще собственные события добавили...
источник

DS

Dmitriy Shuleshov in React — русскоговорящее сообщество
Vladimir Klimov
Не, то, что во вью проблем столько же, сколько способов сделать одно и то же - это да, но сама концепция событий норм же
Просто там куча способов что-то сделать, и надо знать когда какой применить, в реакте все просто - функции передаем вниз
Не бывает так что концепция норм, но когда мы ее вополотили в жизнь она стала костылем. Значит изначальная идея не такая уж и хорошая
источник

VK

Vladimir Klimov in React — русскоговорящее сообщество
Dmitriy Shuleshov
Не бывает так что концепция норм, но когда мы ее вополотили в жизнь она стала костылем. Значит изначальная идея не такая уж и хорошая
Ну, блин, дом так работает)
Потому и во вью так сделали, думаю
источник

VP

Vitaliy Ponomarev in React — русскоговорящее сообщество
Dmitriy Shuleshov
Не бывает так что концепция норм, но когда мы ее вополотили в жизнь она стала костылем. Значит изначальная идея не такая уж и хорошая
бывает. зависит от задачи / решаемой проблемы / границ применимости той или иной концепции. универсальных идеальных решений нет

но это имхо уже оффтоп
источник