āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā š shadcn/directory/clerk/clerk-docs/guides/development/migrating/vue-community-sdk ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
In December 2024, Clerk introduced official support for Vue. This migration guide covers converting from the vue-clerk community SDK to Clerk's official SDK. It covers the breaking changes that were introduced and provides examples on how to resolve them.
Uninstall the community SDK and install Clerk's new official SDK for Vue.
<CodeBlockTabs options={["npm", "yarn", "pnpm", "bun"]}>
npm uninstall vue-clerk
npm install @clerk/vue
yarn remove vue-clerk
yarn add @clerk/vue
pnpm remove vue-clerk
pnpm add @clerk/vue
bun remove vue-clerk
bun add @clerk/vue
</CodeBlockTabs>
useClerk() composableThe useClerk() composable has two important changes:
vue-clerk to @clerk/vue.The key difference is that you now need to use clerk.value to access Clerk methods, since the composable returns a reactive ref.
Update your code as follows:
<script setup>
import { useClerk } from 'vue-clerk'
import { useClerk } from '@clerk/vue'
const clerk = useClerk()
function signIn() {
clerk.openSignIn()
clerk.value.openSignIn()
}
</script>
<template>
<button @click="signIn">Sign in</button>
</template>
ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā