من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

روش افزودن ckeditor به nextjs

روش افزودن ckeditor به nextjs
روش افزودن ckeditor به nextjs

روش افزودن ckeditor به nextjs

یکی از ویرایشگرهای جاوااسکریپتی که در صفحات وب احتمالا با آن برخورد کرده‌اید افزونه‌ی ckeditor است. در این نوشته ما روش افزودن ckeditor را به nextjs بررسی می‌کنیم.

 

روش افزودن ckeditor به nextjs

برای افزودن ویرایشگر ckeditor در فریم ورک nextjs مراحل زیر را دنبال کنید:

  • در ابتدا ckeditor5-react را با کمک پکیج منیجر npm نصب کنید:
npm i @ckeditor/ckeditor5-react
  • سپس باید ckeditor5-build-classic را نیز در ادامه‌ی کار با npm نصب کنید:
npm i @ckeditor/ckeditor5-build-classic
  • سپس یک فایل component باید برای خود ایجاد کنید. این فایل را می‌توانید با ساختن یک پوشه با نام component در مسیر اصلی پروژه بسازید و درون آن یک فایل با نام editor.js ایجاد کنید:
import React, { useEffect, useRef } from "react";

function Editor({ onChange, editorLoaded, name, value }) {
  const editorRef = useRef();
  const { CKEditor, ClassicEditor } = editorRef.current || {};

  useEffect(() => {
    editorRef.current = {
      CKEditor: require("@ckeditor/ckeditor5-react").CKEditor, // v3+
      ClassicEditor: require("@ckeditor/ckeditor5-build-classic")
    };
  }, []);

  return (
    <div>
      {editorLoaded ? (
        <CKEditor
          type=""
          name={name}
          editor={ClassicEditor}
          data={value}
          onChange={(event, editor) => {
            const data = editor.getData();
            // console.log({ event, editor, data })
            onChange(data);
          }}
        />
      ) : (
        <div>Editor loading</div>
      )}
    </div>
  );
}

export default Editor;
  • سپس وارد یکی از صفحات خود که در پوشه‌ی pages شوید و بروید و از کد زیر در بخش return استفاده کنید:
<Editor
   name="description"
   onChange={(data) => {
      setData(data);
   }}
   editorLoaded={editorLoaded}
/>
  • در بدنه‌ی این page نیز دستورات زیر را داخل تابع اصلی صفحه قرار دهید:
const [editorLoaded, setEditorLoaded] = useState(false);
const [data, setData] = useState("");

useEffect(() => {
   setEditorLoaded(true);
}, []);
  • در نهایت با توجه به دو قطعه کد کوتاه بالا باید با صفحه‌ای با حالت زیر روبه رو شوید:
import React, { useState, useEffect } from "react";
import "./styles.css";
import Editor from "./Editor";

export default function App() {
  const [editorLoaded, setEditorLoaded] = useState(false);
  const [data, setData] = useState("");

  useEffect(() => {
    setEditorLoaded(true);
  }, []);

  return (
    <div className="App">
      <h1>ckEditor 5</h1>

      <Editor
        name="description"
        onChange={(data) => {
          setData(data);
        }}
        editorLoaded={editorLoaded}
      />

      {JSON.stringify(data)}
    </div>
  );
}
  • در نهایت خروجی کار باید چیزی به شکل زیر شود:

روش افزودن ckeditor به nextjs

  • اگر مراحل بالا را به درستی پیش بروید باید دموی بالا را حتما مشاهده کنید.

 

اگر سوالی در ارتباط با فریم‌ورک nextjs دارید در بخش نظرات همین نوشته آن را برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]