# Why is a `blockRenderer` not able to use the `viewModel` of

With Loki Components, a certain block is able to be initialized as a Loki Component - adding Alpine.js logic on the frontend and adding a `ComponentViewModel` instance to the PHTML template (`$viewModel`). Within the template, the `$childRenderer` can be used to render child-blocks (and their templates). And that moment, the `$viewModel` variable is passed on from the parent block to the child-block, so that - within the child template - the `$viewModel` can be used as well.

Likewise, the template is also able to render a completely different block via `$blockRenderer`. However, at this moment, the `$viewModel` is not passed. Because the block template maps towards an HTML element in the browser DOM and because the HTML element is governed by a single Alpine.js template, it does not make sense to have another block re-use the same `$viewModel`. It easily leads to a state issue. Furthermore, passing a `$viewModel` might also destroy existing variables in the second block. Because of this, the design was to have the `$blockRenderer` not pass the `$viewModel`.
