It is not necessarily wrong, however there is absolutely no reason to do it that way. Especially not the way that react does it with HTML strings in javascript, never seen anything more rediculous than that. Angular does it the other way around, they do all kind of js style syntax in there HTML view. Also not a fan. In the end it's all about personal preferences and your own clear development vision and strategy. IMO: do not use inline HTML and use inline JS only to bind an event handler like onclick="controller.click" or when using a fw for data binding. No statements in markup like: x for x in items or { (x + y) }