그래서 우리는 프로젝트에 약 두 달입니다. 코드 작성자를 관리하고 코드를 직접 작성하지 않은 것은 이번이 처음입니다. 나는 지난주에 그들의 코드를 읽었습니다. 간단한 React 앱으로 생각했던 것이 스파게티 혼란으로 바뀌었다.ReactJS 로컬 대 글로벌 상태 및 나중에 redux 구현
저는 이해합니다 : redux는 전역 상태를 관리하는 데 도움이됩니다. 그러나 모든 버튼이 글로벌 "행동"에 매핑되어야한다는 것을 의미합니까? 이것은 전체 애플 리케이션 전체에 흩어져 개체의 전체 엉망을 만드는 것 같았다. 로컬 상태가 응용 프로그램의 90 %에 사용될 수있을 때 모든 것을 전역 상태로 사용하는 이유는 무엇입니까?
let subitems = SidebarItems[state.type].sub_items;
Store.dispatch(SidebarSubItemHandler(item.action, subitems[0], null));
if(item.sub_items[subitems[0]].param) {
browserHistory.push(`${item.sub_items[subitems[0]].path}/${item.sub_items[subitems[0]].param}`);
} else {
browserHistory.push(item.sub_items[subitems[0]].path);
}
subItembuttons = Object.keys(this.props.subitems.sub_items).map(subitem => {
let subItem = this.props.subitems.sub_items[subitem];
return <li className={this.props.activeSubItem.action == subItem.action ? "bottom-bar-item active" : "bottom-bar-item"}
onClick={e => this.props.onClickSubItem(e, subItem)}
key={subItem.action} style={this.props.subitems.inlineStyles.mobileSubItemLI}>
<a href="">{subItem.item}</a>
</li>;
});
응용 프로그램이 "액션"객체를 매핑 이와 같은 개체의 모든 종류의 산재되어이 나에게 가슴 앓이를 제공 코드의 일종이다. 따라서 현재 전체 프로젝트를 폐기하고 처음부터 재시작하겠다는 결정을 내리고 있습니다. 로컬 상태를 사용하여 가능한 한 많이하려고합시다. 시간이 흐르면 무언가를 위해 글로벌 상태가 필요합니다. 앱의 모든 단일 액션이 아니라 무언가를 위해서만 구현하십시오. 이게 말이 돼?
그래서 내 질문에 짐작할 수 있습니다. 우리가 지역의 주 및 단지 기본적인 React를 사용하여 응용 프로그램을 개발한다면 항목 단위로 redux를 구현할 수있는 되돌릴 수없는 문제가 발생하게됩니까? http://redux.js.org/docs/faq/OrganizingState.html#organizing-state-only-redux-state에 관련 돌아 오는 질문 항목에서 인용
예제 코드 단편에 더 많은 파일을 제공하면 사람들이 코드베이스의 스파게티 코드 컨텍스트를 볼 수 있습니다. 로컬 상태와 글로벌 상태를 함께 사용하면 명시 적으로 잘못된 것은 없습니다. 코드를 더 많이 보여 주면 React/Redux 아키텍처의 개념이나 원리가 코드를 작성하는 개발자가 따르지 않는 것을 알 수 있습니다. –
https://github.com/reactjs/redux/issues/1287 Voila, 제작자가 직접 대답했습니다. redux의 좋은 사용 사례는 UI 구성 요소에서 상태를 분리하려는 경우입니다. 상태와 구성 요소를 섞어야하는 경우가 있습니다. 그러나 이들을 뒤섞어 버리면 빨리 더러워 질 수 있습니다. –