If We have a markup [v-if] > content and the content is dynamic, as long as the content changes and make the [v-if] hides->shows, the content in [v-if] will back to the previous [demo]. To find the actual problem, I check the source of vuejs and find that the [v-if] only snapshots the content when binding, and I also find that the implements for instance/compile (snapshot for _transCpnts) and compile in [v-if] (snapshot for children) will occur some problems (e.g., not fire the detach event) in some situations.