当前位置:首页 > VUE

vue实现新旧页面切换

2026-02-21 15:55:06VUE

路由切换动画

在Vue中可以通过<transition>组件结合Vue Router实现页面切换动画。在App.vue或布局组件中包裹<router-view>,并设置过渡样式:

<template>
  <router-view v-slot="{ Component }">
    <transition name="fade" mode="out-in">
      <component :is="Component" />
    </transition>
  </router-view>
</template>

<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.3s ease;
}
.fade-enter-from,
.fade-leave-to {
  opacity: 0;
}
</style>

状态管理保存旧数据

使用Vuex或Pinia存储上一个页面的数据,在组件卸载前保存状态:

// Pinia示例
import { defineStore } from 'pinia'
export const usePageStore = defineStore('page', {
  state: () => ({
    previousPageData: null
  })
})

动态过渡效果

根据路由元信息动态切换过渡效果:

// router.js
routes: [
  {
    path: '/detail',
    component: Detail,
    meta: { transition: 'slide' }
  }
]
<template>
  <router-view v-slot="{ Component, route }">
    <transition :name="route.meta.transition || 'fade'">
      <component :is="Component" />
    </transition>
  </router-view>
</template>

页面加载状态处理

使用路由守卫处理数据加载状态:

router.beforeEach((to, from, next) => {
  store.commit('SET_LOADING', true)
  next()
})

router.afterEach(() => {
  setTimeout(() => {
    store.commit('SET_LOADING', false)
  }, 300)
})

组件间通信

通过事件总线或provide/inject在切换时传递数据:

// 事件总线
const emitter = mitt()
emitter.emit('page-change', { from: 'oldPage', data: {...} })

// provide/inject
provide('pageContext', { prevData: {...} })

生命周期控制

利用组件的activateddeactivated钩子:

<script>
export default {
  activated() {
    // 恢复页面状态
  },
  deactivated() {
    // 保存页面状态
  }
}
</script>

滚动行为控制

在路由配置中自定义滚动行为:

const router = createRouter({
  scrollBehavior(to, from, savedPosition) {
    if (savedPosition) {
      return savedPosition
    } else {
      return { top: 0 }
    }
  }
})

vue实现新旧页面切换

标签: 新旧页面
分享给朋友:

相关文章

php实现页面跳转

php实现页面跳转

PHP实现页面跳转的方法 在PHP中,可以通过多种方式实现页面跳转,以下是几种常用的方法: header函数跳转 header("Location: target_page.php"); exit…

vue实现页面缓存

vue实现页面缓存

使用 <keep-alive> 组件实现缓存 Vue 内置的 <keep-alive> 组件可以缓存动态组件或路由组件。通过包裹需要缓存的组件,可以保留其状态避免重复渲染。…

vue实现动态显示页面

vue实现动态显示页面

动态显示页面的实现方法 在Vue中实现动态显示页面通常涉及数据绑定、条件渲染、列表渲染以及动态组件等技术。以下是几种常见的实现方式: 数据驱动视图 Vue的核心思想是数据驱动视图,通过修改数据自动…

vue实现页面

vue实现页面

Vue 实现页面的基本方法 安装 Vue.js 依赖 通过 npm 或 yarn 安装 Vue.js: npm install vue # 或 yarn add vue 创建 Vue 实例 在…

vue实现页面刻度

vue实现页面刻度

实现页面刻度的基本思路 在Vue中实现页面刻度通常用于展示进度、测量或标记特定位置。可以通过动态计算和渲染刻度元素来实现,结合CSS样式控制显示效果。 使用动态渲染刻度线 通过v-for指令动态生成…

vue 实现页面跳转

vue 实现页面跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,主要包括使用 Vue Router 提供的导航方法和原生 JavaScript 的方式。 使用 Vue Router 的 r…