clerk-vue-patterns

Solid

Vue 3 patterns with Clerk — composables (useAuth, useUser, useClerk, useOrganization), Vue Router guards, Pinia auth store integration. Triggers on: vue clerk, useAuth vue, clerk composables, vue router clerk guard, pinia auth clerk. For Nuxt, use clerk-nuxt-patterns instead.

Web & Frontend 43 stars 3 forks Updated 5 days ago

Install

View on GitHub

Quality Score: 77/100

Stars 20%
55
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
0
Description 5%
100

Skill Content

# Vue Patterns SDK: `@clerk/vue` v2+ (Vue 3). For Nuxt, use `clerk-nuxt-patterns`. ## What Do You Need? | Task | Reference | |------|-----------| | Composables: useAuth, useUser, useOrganization | references/composables.md | | Vue Router navigation guards | references/vue-router-guards.md | | Pinia store with auth state | references/pinia-integration.md | ## Mental Model Vue uses composables from `@clerk/vue`: - **`useAuth()`** — reactive `isSignedIn`, `userId`, `signOut` - **`useUser()`** — reactive `user` object - **`useClerk()`** — full Clerk instance for advanced operations - **`useOrganization()`** — reactive `organization`, `membership` ## Setup ### Vue (Plain) ```ts // main.ts import { clerkPlugin } from '@clerk/vue' import { createApp } from 'vue' import App from './App.vue' const app = createApp(App) app.use(clerkPlugin, { publishableKey: import.meta.env.VITE_CLERK_PUBLISHABLE_KEY, }) app.mount('#app') ``` ## Composables Usage ```vue <script setup lang="ts"> import { useAuth, useUser } from '@clerk/vue' const { isSignedIn, userId, signOut } = useAuth() const { user } = useUser() </script> <template> <div v-if="isSignedIn"> <p>Hello {{ user?.firstName }}</p> <button @click="signOut()">Sign Out</button> </div> <SignInButton v-else /> </template> ``` ## Org Switching ```vue <script setup lang="ts"> import { useOrganizationList } from '@clerk/vue' const { userMemberships, setActive } = useOrganizationList() </script> <template> <button...

Details

Author
clerk
Repository
clerk/skills
Created
4 months ago
Last Updated
5 days ago
Language
Shell
License
None

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category