# Integrar en React

- Human documentation: [https://docs.univer.ai/es-ES/guides/pdfs/getting-started/integrations/react](https://docs.univer.ai/es-ES/guides/pdfs/getting-started/integrations/react)

- Agent Markdown: [https://docs.univer.ai/es-ES/guides/pdfs/getting-started/integrations/react.md](https://docs.univer.ai/es-ES/guides/pdfs/getting-started/integrations/react.md)

- Requested language: `es-ES`

- Content language: `es-ES`

- Documentation version: `1.2.0`

- Source: [pdfs/getting-started/integrations/react.es-ES.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/pdfs/getting-started/integrations/react.es-ES.mdx)

---

Consulta primero la [instalación y el uso básico](https://docs.univer.ai/es-ES/guides/pdfs/getting-started/installation.md). Este ejemplo usa React para montar Univer Pdfs en un contenedor con una altura explícita.

### Pasos de integración

1. Inicializa Univer en `useEffect`.
2. Libera Univer en `useEffect cleanup`.

### Código de ejemplo

Cada montaje usa su propio contenedor hijo. La destrucción se ejecuta en una microtarea tras la limpieza de React para evitar desmontar una raíz React anidada durante un commit.

```tsx
import { useEffect, useRef } from 'react'
import { UniverLicensePlugin } from '@univerjs-pro/license'
import { UniverPdfsPlugin } from '@univerjs-pro/pdfs'
import { UniverPdfsUIPlugin } from '@univerjs-pro/pdfs-ui'
import PdfsUIesES from '@univerjs-pro/pdfs-ui/locale/es-ES'
import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import { FUniver } from '@univerjs/core/facade'
import DesignesES from '@univerjs/design/locale/es-ES'
import { UniverUIPlugin } from '@univerjs/ui'
import UIesES from '@univerjs/ui/locale/es-ES'

import '@univerjs/design/lib/index.css'
import '@univerjs/ui/lib/index.css'
import '@univerjs-pro/pdfs-ui/lib/index.css'

import '@univerjs-pro/pdfs/facade'

export function UniverEditor() {
  const containerRef = useRef<HTMLDivElement>(null)

  useEffect(() => {
    const host = containerRef.current
    if (!host) return
    const container = document.createElement('div')
    container.style.height = '100%'
    host.append(container)

    const univer = new Univer({
      locale: LocaleType.ES_ES,
      locales: {
        [LocaleType.ES_ES]: mergeLocales(
          DesignesES,
          UIesES,
          PdfsUIesES,
        ),
      },
    })

    univer.registerPlugin(UniverLicensePlugin, {
      license: 'your license.txt',
    })
    univer.registerPlugin(UniverUIPlugin, { container })
    univer.registerPlugin(UniverPdfsPlugin)
    univer.registerPlugin(UniverPdfsUIPlugin)

    const univerAPI = FUniver.newAPI(univer)
    univerAPI.createPdf({ name: 'Untitled PDF' })

    return () => {
      queueMicrotask(() => {
        univer.dispose()
        container.remove()
      })
    }
  }, [])

  return <div ref={containerRef} style={{ height: 600 }} />
}
```
