← 返回博客
Vue 3 支持现已推出!

Vue 3 支持现已推出!

Daeseung Moon
vuenuxtreleasetransitions

我们非常激动地宣布,SSGOI 现已正式支持 Vue 3!继 React 和 Svelte 之后,Vue 开发者现在也可以享受让 Web 应用感觉愉悦的、如黄油般顺滑的原生应用般页面过渡效果了。

什么是 SSGOI?

SSGOI(쓱오이)是一个通用页面过渡库,它将静态页面导航转变为流畅、令人愉悦的体验。与仅在 Chrome 中工作的浏览器 View Transition API 不同,SSGOI 可在所有现代浏览器中运行 - Chrome、Firefox、Safari 等等。

为什么 Vue 支持很重要

Vue 是最受欢迎的前端框架之一,拥有充满活力的生态系统。随着 Vue 3 的 Composition API 和性能改进,现在是将 SSGOI 的魔力带给 Vue 社区的完美时机。无论您是使用 Vue Router 还是 Nuxt 3,SSGOI 都能无缝集成,无需更改现有的路由逻辑。

开始使用极其简单

安装 Vue 包:

npm install @ssgoi/vue

Ssgoi provider 包装您的应用:

<template>
  <Ssgoi :config="config">
    <RouterView />
  </Ssgoi>
</template>

<script setup>
import { Ssgoi } from '@ssgoi/vue';
import { fade } from '@ssgoi/vue/view-transitions';

const config = {
  defaultTransition: fade()
};
</script>

SsgoiTransition 包装您的页面:

<template>
  <SsgoiTransition id="/home">
    <h1>欢迎使用 Vue + SSGOI!</h1>
  </SsgoiTransition>
</template>

<script setup>
import { SsgoiTransition } from '@ssgoi/vue';
</script>

就是这样!您的 Vue 应用现在拥有流畅的页面过渡效果了。

Vue 特定功能

1. 自定义指令支持

Vue 开发者喜欢指令,所以我们创建了 v-transition 来为单个元素添加动画:

<div v-transition="{
  key: 'hero',
  in: fadeIn(),
  out: scaleOut()
}">
  <img src="hero.jpg" alt="Hero" />
</div>

2. Composition API 集成

对于喜欢 Composition API 的开发者:

import { useSsgoi } from '@ssgoi/vue';

const ssgoi = useSsgoi();
// 访问过渡上下文和状态

3. 完美的 Nuxt 3 兼容性

SSGOI 与 Nuxt 3 的 SSR 和混合渲染完美配合:

<!-- app.vue -->
<template>
  <Ssgoi :config="config">
    <NuxtPage />
  </Ssgoi>
</template>

没有水合问题,SEO 友好,并且与 Nuxt 强大的路由系统协同工作。

您喜爱的相同过渡效果

React 和 Svelte 中所有美丽的过渡效果都可用:

  • fade() - 流畅的透明度过渡
  • slide() - 方向性滑动效果
  • scale() - 缩放动画
  • hero() - 共享元素过渡
  • pinterest() - Pinterest 风格扩展效果
  • ripple() - Material Design 涟漪效果

还有元素级动画,如 fadeIn()slideUp()bounce()blur() 等等!

自然运动的弹簧物理学

每个动画都使用弹簧物理学,带来自然、响应的感觉:

slide({
  direction: 'left',
  spring: {
    stiffness: 300,
    damping: 30
  }
})

试用 Vue 演示

想要看看实际效果?查看我们的 Vue 演示应用:

git clone https://github.com/meursyphus/ssgoi
cd ssgoi
pnpm install
pnpm vue-demo:dev

或访问我们的交互式文档查看实时示例并尝试不同的过渡效果。

下一步计划

Vue 支持只是开始。我们正在开发:

  • 更多预设过渡效果
  • 高级手势支持
  • 性能优化
  • 更好的 DevTools 集成

加入社区

SSGOI 是开源的,我们欢迎您的贡献!无论是错误报告、功能请求还是拉取请求,请访问我们的 GitHub 仓库

开始构建美丽的 Vue 应用

@ssgoi/vue 包今天已在 npm 上可用。使用用户会喜爱的流畅、令人愉悦的页面过渡效果来改造您的 Vue 应用程序。

npm install @ssgoi/vue

祝过渡愉快! 🚀


SSGOI 采用 MIT 许可证,由 MeurSyphus 维护。特别感谢 Vue 社区在开发期间提供的反馈和支持。