Take a look at domvm [1], disclaimer: mine. It was written expressly to allow for imperative AND declarative sub-view composition using a concise, js syntax. I used Mithril for a while before needing granular redraw and concluding that MVC wasn't the way to go.
~8k min. No build tools, no dependencies. Extremely fast [2], composable, isomporphic. JSONML [3] superset template syntax. it's plain js all the way down.
I dont think this is the type of composition I am talking about. This composes pure views, like react, but it doesn't compose their state, same as react.