npm 包 kaneoh-draft-js-side-toolbar-plugin 使用教程

阅读时长 12 分钟读完

在前端开发中,富文本编辑器已经成为一个不可或缺的工具。而 Draft.js 是 React 生态下一款优秀的富文本编辑器框架。为了让开发更加便捷,社区涌现出了很多插件和包。其中,kaneoh-draft-js-side-toolbar-plugin 提供了一个侧边栏菜单,方便用户进行样式修改,使用起来非常方便。本文将介绍该插件的使用教程。

安装及使用

使用前需先安装 Draft.js 和该插件,可以使用 npm 或 yarn 进行安装:

安装完成后,就可以在项目中使用该插件了。首先需要导入插件及相关组件:

-- -------------------- ---- -------
------ -
  -------
  ------------
  ----------
  ---------------------
  ---------------
- ---- -----------
------ ----------------------- ---- --------------------------------------
------ -----------------------------------------------------
------ -----------------------------------------------------------

----- ----------------- - --------------------------
----- - ----------- - - ------------------

注意,在使用前需要先导入样式表。

初始化

初始化编辑器需要创建一个编辑器状态:

同时需要绑定编辑器和插件:

渲染

在渲染中需要使用一个包含编辑器和侧边栏的组件:

-- -------------------- ---- -------
------ -
  ---- ----------------------
    ---- -----------------------------
      -------
        -------------------------
        -------------------------
        -----------------------------
        -----------------------------------
        -----------------
      --
      ------------ --
    ------
  ------
--

样式设置

在初始化过程中,我们绑定了 KeyBinding 和 KeyCommand 函数。这些函数实现了快速设置样式的功能。

-- -------------------- ---- -------
----- -------------- - --- -- -
  -- ------------------------------------- -- ----- --- ---- -
    ------ -------
  -
  -- ------------------------------------- -- ----- --- ---- -
    ------ ---------
  -
  -- ------------------------------------- -- ----- --- ---- -
    ------ ------------
  -
  ------ ------------------------
--

----- ---------------- - --------- ------------ -- -
  ----- -------- - --------------------------------------- ---------
  -- ---------- -
    -------------------------
    ------ ----------
  -
  ------ --------------
--

这里做了一个简单的实现:当用户按下 Ctrl(Cmd)+ B 时,使得选中的文本加粗,具体实现在 RichUtils 工具类中。其它的设置样式的快捷键也可参考这种方法实现。

同时,该插件还提供了一个点击按钮设置样式的功能。

-- -------------------- ---- -------
----- ------------------- --------------------- - ----------------

----- ------------------- - ---------------------------
  ---------- ------------ ------------- -----------------
  --------- -- -- ---------------------------
  ------------------ -- -- -
    -- -------------------- ------ -----
    ------ -------------- ---
  --
---

----- - ------------- - - --------------------

----- ------- - ------------------- ---------------------

----- ---------- - -
  ------ -----
  ------ -------
  ----- ---------
--

----- ------------ - -
  ------ -----
  ------ ---------
  ----- -----------
--

----- --------------- - -
  ------ ------
  ------ ------------
  ----- --------------
--

通过这样的方式,我们就可以很方便地设置样式了。

示例代码

下面是一个新增编辑器状态的实例:

-- -------------------- ---- -------
------ ------ - -------- - ---- --------
------ -
  -------
  ------------
  ----------
  ---------------------
  ---------------
- ---- -----------
------ ----------------------- ---- --------------------------------------
------ -----------------------------------------------------
------ -----------------------------------------------------------
------ ------------------------- ---- ---------------------------------
------ --------------------------

----- -------- - -- -- -
  ---- ---------- ------------
    ----- ----- --------- ----------------------
    ----- ----- --------- ----------------------
  ------
--

----- ---------- - -- -- -
  ---- ---------- ------------
    -----
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      --------------
    --------
  ------
--

----- ------------- - -- -- -
  ---- ---------- ------------
    ----- -------------------------------------------------- ----------------------
    ----- -------------------------------------------------------- ----------------------
    ----- ----- ------ --------- ---------- ----------------------
    ----- ----- ------ --------- ---------- ----------------------
  ------
--

----- ---------------- - -- -- -
  ----- ------------- --------------- - ---------
    -------------------------
  --

  ----- ------------------- --------------------- - ----------------

  ----- ----------------- - --------------------------

  ----- - ----------- - - ------------------

  ----- ------------------- - ---------------------------
    ---------- ------------ ------------- -----------------
    --------- -- -- ---------------------------
    ------------------ -- -- -
      -- -------------------- ------ -----
      ------ -------------- ---
    --
  ---

  ----- - ------------- - - --------------------

  ----- ------- - ------------------- ---------------------

  ----- ---------- - -
    ------ -----
    ------ -------
    ----- ---------
  --

  ----- ------------ - -
    ------ -----
    ------ ---------
    ----- -----------
  --

  ----- --------------- - -
    ------ ------
    ------ ------------
    ----- --------------
  --

  ----- -------------- - --- -- -
    -- ------------------------------------- -- ----- --- ---- -
      ------ -------
    -
    -- ------------------------------------- -- ----- --- ---- -
      ------ ---------
    -
    -- ------------------------------------- -- ----- --- ---- -
      ------ ------------
    -
    ------ ------------------------
  --

  ----- ---------------- - --------- ------------ -- -
    ----- -------- - --------------------------------------- ---------

    -- ---------- -
      -------------------------
      ------ ----------
    -
    ------ --------------
  --

  ------ -
    ---- ----------------------
      ---- -----------------------------
        -------
          -------------------------
          -------------------------
          -----------------------------
          -----------------------------------
          -----------------
        --
        ------------ --
      ------
    ------
  --
--

------ ------- -----------------

总结

到此,我们已经完成了 kaneoh-draft-js-side-toolbar-plugin 的使用教程。该插件可以使得富文本编辑器的样式设置更加便捷,对于前端开发人员来说,无疑是一款非常好用的插件。希望本文的介绍可以帮助读者更好地使用该插件,提高开发效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055fce81e8991b448dd56b

纠错
反馈