Integração do Editor TinyMCE com React para Texto Rico

Visão Geral do Componente

O TinyMCE é um editor de texto rico open-source robusto, e seu componente oficial para React simplifica a incorporação em aplicações baseadas nessa biblioteca. Esta abordagem permite que desenvolvedores implementem funcionalidades avançadas de edição de conteúdo, como formatação de texto e inserção de mídia, de forma eficiente.

Configuração Inicial

Para começar, assegure-se de ter o Node.js e o npm instalados. Instale o pacote do componente usando o comando:

npm install @tinymce/tinymce-react

Crie um novo projeto React utilizando o Vite com o seguinte comando:

npm create vite@latest meu-projeto-editor --template react
cd meu-projeto-editor
npm install

Implementação do Editor

Dentro do diretório src, crie uma pasta components e adicione um arquivo RichtextEditor.jsx. Utilize um estado para gerenciar a referência do editor:

// src/components/RichtextEditor.jsx
import React, { useState, useEffect } from 'react';
import { Editor } from '@tinymce/tinymce-react';

const RichtextEditor = () => {
  const [editorInstance, setEditorInstance] = useState(null);
  const initialContent = '<p>Conteúdo de exemplo para o editor.</p>';

  useEffect(() => {
    if (editorInstance) {
      console.log('Editor inicializado com sucesso.');
    }
  }, [editorInstance]);

  const captureContent = () => {
    if (editorInstance) {
      const htmlOutput = editorInstance.getContent();
      console.log(htmlOutput);
    }
  };

  return (
    <div>
      <Editor
        onInit={(event, editor) => setEditorInstance(editor)}
        initialValue={initialContent}
        init={{
          height: 400,
          plugins: [
            'advlist autolink lists link image charmap print preview anchor',
            'searchreplace visualblocks code fullscreen',
            'insertdatetime media table paste help wordcount'
          ],
          toolbar: 'undo redo | bold italic underline | alignleft aligncenter alignright | bullist numlist | link image',
          content_style: 'body { font-family: Arial, sans-serif; font-size: 16px; }'
        }}
      />
      <button onClick={captureContent}>Exibir Conteúdo</button>
    </div>
  );
};

export default RichtextEditor;

Integração na Aplicação

No arquivo principal src/App.jsx, importe e utilize o componente do editor:

// src/App.jsx
import React from 'react';
import RichtextEditor from './components/RichtextEditor';

function Application() {
  return (
    <div className="application-container">
      <h1>Exemplo de Editor com TinyMCE e React</h1>
      <RichtextEditor />
    </div>
  );
}

export default Application;

Execução do Projeto

Inicie o servidor de desenvolvimento com o comando:

npm run dev

Casos de Uso e Integrações

Este componente é ideal para sistemas de gerenciamento de conteúdo, plataformas de blogs e ferramentas de edição online. Para otimização, considere:

  • Personalização de barra de ferramentas e plugins conforme a necessidade do projeto.
  • Suporte a intrenacionalização usando os recursos nativos do TinyMCE.
  • Gerenciamento de estado com bibliotecas como Redux para sincronizar o conteúdo do editor.
  • Combinação com frameworks como Next.js para renderização server-side.

Tags: tinymce React javascript richtext-editor npm

Publicado em 6-14 18:22 por Thomas