# How it work: Incremental-DOM

Алгоритм работы incremental-dom подобен SAX парсеру: функция [incremental-dom](http://google.github.io/incremental-dom/#about) представляет собой набор последовательных комманд для модификации реальной структуры DOM, сверху вниз.

То есть когда шаблонная функция переходит к следующей комманде, incremental-dom сравнивает то что требуеться от команды и то что есть в доме и вносит изменения.

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

В случае если incremental-dom имеет команду изменить структуру то команда будет выполнена, но в отличии от других библиотек которые реализовывают *VirtualDOM*, например **ReactJS**, у Вас не будет никаких исключений или ошибок.

**То есть, по факту Вы можете исспользовать любую библиотеку для манипуляции или модификации  вашей DOM структурой, главное чтобы шаблонные функции не затерали внесенные сторонними библиотеками изменения.**

В зависимости от того как работает и что реализовывает стороння библиотека, подходы для работы с ней могут отличаться, начиная от `skip` атрибута и кастомного рендеринга, заканчивая `key` атрибутом или просто ничего не менять в шаблоне.

> Обратите внимание что если incremental-dom не устанавливает каких либо атрибутов то это означает что он не затрет атрибуты установленные сторонней библиотекой при рендеринге.