Чем отличается forceUpdate от setState?
Серьезно?!forceUpdate() - черным по белому жеж ...использование forceUpdate привести к каким то побочным эфектам
конечно может. Но вообще это скорее исключение из правил и лучше пользовать setState()
Если кратко: setState() записывает данные в this.state и вызывает рендер.forceUpdate() ничего не делает, а просто вызывает рендер. В принципе бесполезная функция, т.е. если ни props, ни state не изменились, то отрендерится один фиг тоже самое. Если честно даже в голову не приходит зачем это может понадобится, кроме каких-нить волшебных асинхронных костылей в render'e.
единственный раз когда понадобился forceUpdate, это реализовать медиа запросы в проекте в котором нужна была поддержка ie8.