????Sift Science?????????React????в???????????????????????????Backbone + React frankenstein??hybrid app??????????????????React??????????????????????????????????UI??????????????????????????????????????????漰???Щ?Щ??????????????
??????????????????????????????????????????????????React???????????????????UI???????????????а??????????????????????????????????Щ???????
??????componentDidUpdate???????????
????React??????????????????DOM????????????DOM????????????????????????????????props??state???????????????????Ч???? ???????:

??????????????????????????????????. ????????????? “contact #3” ????δ???????. ????????????????????????????????????????????????? Contact #2.
?????????????????????????????????????????У???????????
????navigateToContact: function(newContactId) {
????if (this._hasUnsavedChanges()) {
????this._saveChanges();
????}
????this.setState({
????currentContactId: newContactId
????});
????}
????…
????navigateToContact(‘contact2’)
??????????????????????. ??????????“contact #2”??????????????·???“< prev contact”?????????????????????navigateToContact???????????????????currentContactId??????
?????????????componentDidUpdate??????????????????????????
????componentDidUpdate: function(prevProps?? prevState) {
????if (prevState.currentContactId !== state.currentContactId) {
????if (this._hasUnsavedChanges()) {
????this._saveChanges();
????}
????}
????}
??????????汾?У????????????????????????????????????????????????????С????????е?????????????????????this.setState({currentContactId:’contact2′})????????????????????????????????????????
?????????????????????????????????????????navigateToContact????????????????????????????????????????????????prop??state?????????????????????????????????????????????????????????state???????????????????????????????????????????????????
??????????????????
????????????????????????????????????????????????????????????????Thinking in React ????У???????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????κη????????????????????ê????????????????????????JS???????CSS ?????任??????????????????????????????????????????????????????????????css transition group?????????????????????????????????????????????????????????????Щ????????????
??????????????????????????????????????Ч?????????μ????????У????????????????????UI???????????????????????????????????????????ɡ?
??????????????
?????????

????React ??????У????????????????????????????????????????????????????????????????????????и????????????????????????????????????????????????????????????prop??
????????????????????????HTML<select>?????????“?????е????”??÷???????????????????????????Щ????????????????????????????ε??????????????????????????????“??????”?????????????????????μ?????????????ò???????????ж???????????“??????”????????????? ?????????????????????????????“??????”??prop???????????????????????????
?????????????????????????????????????????????????????????????????????????????????UI?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????UI????????????????????????????????????У????????“??????????????”?????????????????????????????????????????????????
???????????????UI???
???????????????????????????????????????????????????Щ?????????????UI??????????????????á???????????????????????????á?????????и?????????????????????????????????????????????????δ???Select???????????????UI???????UI????????????ToolTipToggle????С?

????Select???
????Select?????HTML???<select>??????????????????????б????????????????????????????????????????????????????????????????Select??????????????????????????DropdownToggle??????ɡ?
????DropdownToggle
???????????????????????????????????????????HoverCard ?? Select ??????????????????????μ????????DropdownToggle???????????????????????б????DropdownToggle??????
????TooltipToggle
????TooltipToggle????????DropdownToggle???????????????????HoverCard????????????????????????HoverCard; ????????????????????DropdownToggle????????????????TooltipToggle?????????????????ESC???????μ????TooltipToggle??????????DropdownToggle???????
????HoverCard
????HoverCard????????????????????UI?????????????????????????????????????????????????????????????????????????????ζ?????ж?????????????
????HoverCard????ê??????????????????????λ????λ????HoverCard??ж????????о??????????й??????(tooltip)?????к????????????????????????????????(dropdown)??????Select??????????????????????????????
????HoverCard??????????????????????????????????????(TooltipToggle?????????????)??
???????????λ?????????HoverCard??ê?????(TooltipToggle ???“top” ?? DropdownToggle ??? “bottom”)???????Щ??
????HoverCard??????????Щ???(????clicks)????ESC??????????Щ??????????HoverCard?????????(prop callbacks)??????????????????????HoverCard??HoverCard??????????????????λ?????????????????????????????????λ?á?
????(?????????????????????????)
?????????HoverCard????????е?UI???????????????????(????DropdownToggle??TooltipToggle)?????????????????????????????????????????顣Dom??λ?????????????UI??hover-y?С?
?????????????????????UI?????????????????????????????????????????????????????????????????????????????????????
???????? Flux?
????Flux ??????洢??ó?????????????Щ?????????κε????????????????????????????????????????????this.state??????????????Flux??——???????????????????Щ??ж?????????????this.state??????????????????????????DropdownToggle??????isCurrentlyOpen????
????Flux??????????洢??????ó????????????????????ú?????????????????????Backbone?????棬????????????洢????????????????????REST API?????Relay-like????(?????????????????????)
?????????????????????????????????????????Flux???????????????????д???????????????????????????????????????????????????Щ?????????????????????????????????????????????????????????????????
??????React????CSS
??????????o????????????????React????????????????????????????????????React??????????????CSS????????????????????κ?JS???????????????????????
???????????????????? Bootstrap ???????????????????????????????? Bootstrap ???????????? React ?????????????Bootstrap????????????????????????????????????????? Icon React ??????????????????????????????????????ò????????????????????????????????????????????????????????
??????????????????Щ??????????????ê??anchor???????heading?????????????? SCSS ????????????????????????????? css ??????С??????? UI ???????????? React ?????????????????????????Ч?????????????o???????
??????????????????Щ?????Щ???????????????????????????React????????????????????????????????????????????????????????????飬?????????