I'm building a "page" manually from a controller that gets data from fields in multiple nodes, building tables and other good things. What I'm trying to do is to add data into the "header" region (basically adding further info after the page title so it sits in the same styling and section), but before the main content. I know the traditional way is to create a block and position that, however, I'd then need to load a few nodes again to get these fields when I already have the data at hand in the controller for the page so it seems wrong from a performance perspective to have to load these nodes again each page load.
Is there any easy way to push the data into a specific region in the render array?
In the controller, I'm building the render array like this
$render['#title'] = $title;
$render['page'][] = $node->field_my_field1->view();
$render['page'][] = $node->field_my_field2->view();
$render['page'][] = myfunction($node->field_my_field3, $node->field_my_field3);
return $render;