Он построен на основе contentEditable, но сужает взаимодействие.

Чтобы сделать поведение редактора предсказуемым, редактор contentEditable следует рассматривать как устройство ввода-вывода. Точное определение того, что происходит, когда пользователь взаимодействует с текстом и мультимедиа. Таким образом, каждое взаимодействие сопоставляется с эффектом в DOM.

Draft.js построен с использованием реакции, а также предоставляет методы жизненного цикла для взаимодействия.