If you want to use the latest, second-generation Builder SDKs, understanding how the imports might have changed for your framework can help you get started smoothly so you can leverage the many improvements and updates.
The table below outlines the features available for our SDKs.
Feature | React (Gen1) | React (Gen2) | Vue | React Native | Svelte | Qwik | Angular | HTML API |
---|---|---|---|---|---|---|---|---|
✅ | ✅ | ✅ | n/a | ✅ | ✅ | ⚠️ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ❌ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | |
✅ | ✅ | ✅ | n/a | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | 🔵 | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | |
✅ | 🔵 | 🔵 | 🔵 | 🔵 | 🔵 | ✅ | ✅ | |
✅ | ✅ | ✅ | n/a | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ⚠️ |
Legend
✅ Full support
🔵 Being developed
⚠️ Partial support
(hover for a tooltip with details)
❌ Not supported
Rendering your Builder content differs between Gen 1 and Gen 2.
Gen 1
In Gen 1 SDKs the component is BuilderComponent
.
import { BuilderComponent } from '@builder.io/react';
<BuilderComponent model="page" content={contentJSON} />
For recommended usage and a description of the props and methods of BuilderComponent
, visit Using BuilderComponent.
Gen 2
In Gen 2 SDKs the component is Content
.
import { Content } from '@builder.io/sdk-react';
<Content
model="page"
apiKey=YOUR_API_KEY
content={contentJson}
/>
For recommended usage and a description of the props of the Content
component, visit Using the Content Component.
Fetching data differs between Gen 1 and Gen 2.
Gen 1
In Gen 1, import builder
and use the get()
or getAll()
helper:
import { builder } from '@builder.io/react';
const page = await builder.get('page', {
fields: 'data.url, name',
});
const pages = await builder.getAll('page', {
fields: 'data.url,name',
});
Gen 2
In Gen 2, import fetchOneEntry()
and fetchEntries()
to fetch single and multiple entries respectively. Additionally, note that the apiKey
is a required field:
import { fetchOneEntry, fetchEntries } from '@builder.io/sdk-react';
const page = await fetchOneEntry({
model: 'page',
fields: 'data.url,name',
apiKey: 'YOUR_API_KEY'
});
const pages = await fetchEntries({
model: 'page',
fields: 'data.url,name',
apiKey: 'YOUR_API_KEY',});
For more information, visit the Content API documentation.
Registering custom components differs between Gen 1 and Gen 2.
Gen 1
In Gen 1, import the Builder
object and use registerComponent()
:
import { Builder } from '@builder.io/react';
import { MyHero } from './MyHero';
Builder.registerComponent(MyHero, {
name: 'Hero',
inputs: [
{ name: 'title', type: 'string' },
],
});
Gen 2
In Gen 2, create a customComponents
array containing all the custom components, and pass that as a prop to the Content
component:
import { Content } from '@builder.io/sdk-react';
import { MyHero } from './MyHero';
// this array can contain as many custom components as you want
const customComponents = [
{
component: MyHero,
name: 'Hero',
inputs: [
{ name: 'title', type: 'string' },
],
}
]
// pass the array to Content
<Content customComponents={customComponents} />
For more information on custom components, visit Registering Custom Components.
Configuring the Visual Editor differs between React Gen 1 and React Gen 2.
Gen 1
In Gen 1, import Builder
and use the register()
helper:
import { Builder } from '@builder.io/react';
Builder.register('insertMenu', {
name: 'Our components',
items: [
{ name: 'Hero' },
{ name: 'Double Columns' },
{ name: 'Triple Columns' },
{ name: 'Dynamic Columns' },
],
})
Gen 2
In Gen 2, import register
:
import { register } from '@builder.io/sdk-react';
register('insertMenu', {
name: 'Our components',
items: [
{ name: 'Hero' },
{ name: 'Double Columns' }
],
})
The table below lists the available package names by framework and generation. Use these names for installs and imports.
Framework | Gen 1 | Gen 2 |
---|---|---|
Qwik | n/a |
|
React* |
|
|
Vue** |
|
The Vue Gen 2 is the recommended SDK. |
Svelte | n/a |
|
Solid | n/a |
|
React Native | n/a |
|
Angular |
| n/a |
*Includes React-based frameworks such as Remix, Hydrogen, Gatsby, Next.js, and App Router.
**Includes Nuxt.
Tip: If you're using Remix or Hydrogen, we recommend using the Gen 2 SDK.
For fetching in advanced use cases, read Using Enrich to Fetch References and Symbols.