My current understanding is that when customer selects a different variant on a product page, it will send a AJAX request, and Shopify will return a new product section which will replace the existing section with new selected variant. (without refreshing the page)
In my app’s theme app extension app block, I am using {{ product.selected_variant.title }} to output the currently selected variant on product page. But when customer select a new variant, the value still shows the previous variant, this value will only be updated if I manually reload the page on web browser (Command + R / Control + R). The AJAX response still give the old variant value.
But when I add the {{ product.selected_variant.title }} on the product page code (in the Theme code) , this does update when customer select the new variant.