Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sveltejs/svelte/llms.txt
Use this file to discover all available pages before exploring further.
Retrieves the context that belongs to the closest parent component with the specified key. Must be called during component initialisation.
createContext is a type-safe alternative.
Signature
function getContext<T>(key: any): T
Parameters
The key used by a parent component when calling setContext. This should match exactly the key used in the parent.
Returns
Returns the context object that was set by a parent component, or undefined if no parent has set a context with this key.
Example
Parent Component
<!-- Parent.svelte -->
<script>
import { setContext } from 'svelte';
import Child from './Child.svelte';
setContext('api', {
baseUrl: 'https://api.example.com',
async fetch(endpoint) {
const response = await fetch(this.baseUrl + endpoint);
return response.json();
}
});
</script>
<Child />
Child Component
<!-- Child.svelte -->
<script>
import { getContext } from 'svelte';
const api = getContext('api');
let data = $state(null);
async function loadData() {
data = await api.fetch('/users');
}
$effect(() => {
loadData();
});
</script>
{#if data}
<ul>
{#each data as user}
<li>{user.name}</li>
{/each}
</ul>
{/if}
Nested Child Component
<!-- GrandChild.svelte -->
<script>
import { getContext } from 'svelte';
// Can access context from any ancestor component
const api = getContext('api');
</script>
<p>API Base URL: {api.baseUrl}</p>
Type-Safe Context
For better type safety, use createContext:
// context.ts
import { createContext } from 'svelte';
interface API {
baseUrl: string;
fetch(endpoint: string): Promise<any>;
}
export const [getAPI, setAPI] = createContext<API>();
<!-- Parent.svelte -->
<script>
import { setAPI } from './context';
setAPI({
baseUrl: 'https://api.example.com',
async fetch(endpoint) {
const response = await fetch(this.baseUrl + endpoint);
return response.json();
}
});
</script>
<!-- Child.svelte -->
<script>
import { getAPI } from './context';
const api = getAPI(); // Fully typed!
</script>
Notes
- Must be called during component initialisation (not in callbacks or effects)
- Returns
undefined if no parent component has set a context with the given key
- Use
hasContext to check if a context exists before calling getContext
- Context lookup traverses up the component tree until it finds a matching key