Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 1.11 KB

page-transitions.md

File metadata and controls

35 lines (27 loc) · 1.11 KB

Page transitions

Gridsome is mounting & unmounting the whole layout on route change. This happens because of how Gridsome deals with Layouts. Layouts are just wrapper components per page. This means, by default, it's only possible to have Enter transitions.

✌️ If you want to keep, for example, Header and Footer between page transitions you'll need to override App.vue and add a transition there.

Create an Enter transition

To make transitions work now you need to use only Enter transitions. You can do this by adding a appear attribute to <transition>.

Here is an example where we fade in content on route change in a layout:

<template>
  <div id="main-wrapper">
    <header />
      <transition name="fade" appear>
        <main> <!-- a wrapper for slot is needed -->
          <slot /> <!-- the content -->
        </main>
      </transition>
    <footer />
  </div>
</template>

<style>
.fade-enter-active {
  transition: opacity .5s;
}

.fade-enter {
  opacity: 0;
}
</style>