Pinia+Router学习笔记(十四)

简介: 本节记录Vue-Router中路由过渡动效相关内容

在进行路由跳转的时候我们也可以设置一些动效,让整个过程看起来没那么枯燥(这里使用animate.css动画库)

import { createApp, toRaw } from 'vue'
import router from './router'
import App from './App.vue'
// 引入动画库
import 'animate.css'
const app = createApp(App)

app.use(router)

app.mount('#app')
<template>
  <div>
    <router-view #default="{ route, Component }">
      <transition
        :enter-active-class="`animate__animated animate__backInRight`"
        >
        <component :is="Component"></component>
      </transition>
    </router-view>
  </div>
</template>

<script setup lang="ts">
  import { ref, reactive } from 'vue'
</script>

<style scoped></style>

router-view有一个默认作用域插槽,接收两个变量route和Component,route包含跳转时的一些路由信息,Component则是VNode,可通过动态组件展示在页面上。上图这样的处理方式让所有的路由都使用animate__backInRight这个动画,如果想让不同路由组件使用不同动画可以在meta中定义动画名

<template>
  <div>
    <router-view #default="{ route, Component }">
<!--       定义动画类名,从route.meta中取 -->
      <transition
        :enter-active-class="`animate__animated ${route.meta.transition}`"
        >
        <component :is="Component"></component>
      </transition>
    </router-view>
  </div>
</template>

<script setup lang="ts">
  import { ref, reactive } from 'vue'
</script>

<style scoped></style>
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'

// declare声明模块防止类型报错
declare module 'vue-router' {
  interface RouteMeta {
    transition: string
  }
}

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    meta: {
      // 定义动画名
      transition: 'animate__backInRight',
    },
    component: () => import('../components/login.vue'),
  },
  {
    path: '/reg',
    component: () => import('../components/reg.vue'),
  },
]

const router = createRouter({
  history: createWebHashHistory(),
  routes,
})

router.beforeEach((to, from, next) => {
  next(true)
})

export default router
相关文章
|
3月前
|
缓存
vue2进阶篇:vue-router之路由的2种工作模式
vue2进阶篇:vue-router之路由的2种工作模式
37 0
|
前端开发
前端学习笔记202304学习笔记第十七天-vue3.0-vue-router4.0x的基本使用
前端学习笔记202304学习笔记第十七天-vue3.0-vue-router4.0x的基本使用
81 0
Pinia+Router学习笔记(十二)
本节记录Vue-Router的两种路由重定向方式
129 0
Pinia+Router学习笔记(十一)
本节记录嵌套路由&命名视图相关内容
126 0
|
前端开发
Pinia+Router学习笔记(十五)
本节记录Vue-Router中关于路由滚动行为的相关内容
87 0
Pinia+Router学习笔记(十三)
本节记录Vue-Router中路由守卫相关知识
116 0
|
前端开发 网络架构
Pinia+Router学习笔记(十六)
本节记录Vue-Router中动态路由相关内容
205 0
Pinia+Router学习笔记(九)
本节记录路由历史记录相关内容
82 0
|
API
Pinia+Router学习笔记(五)
本节记录例API和Pinia持久化插件相关内容
107 0
|
JavaScript
Pinia+Router学习笔记(二)
本节记录修改State中值的五种方式
99 0