Здравствуйте!
Подскажите, как перерисовать отдельный html элемент, а не всю страницу. Например как это делает реакт, перерисовывая компоненты. Пробовал через display: none/block, не сработало. У меня содержимое элемента рендерится из объекта, и мне нужно его перерисовать, когда объект мутирует.
"перерисовать" это что? Перерисовывать можно по разному, точечно вносить изменения например.
Содержимое элемента можно сменить полностью задав innerHTML.
Можно создавать ноды, удалять существующие и на их место вставлять созданные.
Можно, как это делают некоторые движки, создавать параллельную структуру, а потом пробегаться и искать изменения относительно реальной, и если они найдены менять реальную.
я знаю про innerHTML, но все внутренности, а их немало, задаются динамически поэтому этот метод не подходит.
вот я и хочу понять как запустить смену "реальной", но чтобы менять отдельные блоки или компоненты, не перезагружать всю страницу
beDenz, для небольших частных случаев можно накостылить что-то в этом роде https://jsfiddle.net/melchiorio/1uo3Lk8d/
Можно попробовать помечать в плоском хтмл изменяемые места хмтл-комментарием, вычленять текстовую ноду и заменять ее.
Для средних проще взять react/vue.
Для большого SPA - ангуляр.