Разница между bindActionCreators и dispatch

189
17 апреля 2018, 03:45

Захотелось получить ответ на вопрос, который мучает:) В интернете не нашел хорошего ответа (может плохо искал).

Имеется несколько компонент.

В одних делаю:

function mapDispatchToProps(dispatch) {
    return {
        actions: bindActionCreators(ActionCreators, dispatch)
    }
}

Где ActionCreators это объект с экспортируемыми функциями. После оборачиваю mapDispatchToProps и mapStateToProps в connect:

connect(mapStateToProps, mapDispatchToProps)(Component)

Далее вызываю эти функции:

this.props.actions.myFunc()

В других компонентах делаю без mapDispatchToProps, просто:

connect(mapStateToProps)(Component)

Импортирую все экшены отдельно:

import { myFunc, action, another_action } from '../actions'

И вызываю функции:

this.props.dispatch(myFunc()) 

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

Вопрос такой: есть ли какая принципиальная разница (например в плане производительности), между двумя этими подходами, или же это одно и то же действие которое описано двумя разными способами?

READ ALSO
Как отловить событие scroll? In react

Как отловить событие scroll? In react

Мне нужно отловить событие scroll вверх и вниз, и в зависимости от этого менять thisprops

223
Создать новые строки из строки

Создать новые строки из строки

Есть переменная которая хранит строки текста, текст разделяется пробеламиКак извлечь из переменной слова и расположить с новой строки с последующим...

154
Не работает .focus()

Не работает .focus()

Не работаетfocus() В консоли console

127