Question: Is there any reason that matching an empty list should be done using a case/match instead of if/else, other than style? For example:

```
val a: List

def compute: Int = 
  if (a.isEmpty) 0
  else a.sum

```

versus

```
def compute: Int = 
  a match {
    case Nil => 0
    case _ => a.sum // This is bad. For sake of illustration only.
  }

```

Answer: 
You could wrap your components within a `keep-alive` element ..

```
<keep-alive>
    <Element v-if="this.mode === 'mode'"/>
    <OtherElement v-else />
</keep-alive>

```
If created() doesn't do the job, you should try to do a simple check in the parent element if this.mode was switched on and off before, save the result as a variable and pass that to the mounted hook and only run the animation if the mode wasn't switched before.