当前位置:首页 > React

react实现markdown

2026-01-26 14:10:47React

React 实现 Markdown 编辑器

使用 React 实现 Markdown 编辑器可以通过以下方法完成,结合现有库或自定义解析逻辑。

使用现成库(推荐)

安装 react-markdownmarked 等流行库:

npm install react-markdown

基本示例代码:

react实现markdown

import React from 'react';
import ReactMarkdown from 'react-markdown';

function MarkdownEditor() {
  const [markdown, setMarkdown] = React.useState('# Hello World');

  return (
    <div>
      <textarea 
        value={markdown}
        onChange={(e) => setMarkdown(e.target.value)}
      />
      <ReactMarkdown>{markdown}</ReactMarkdown>
    </div>
  );
}

自定义解析逻辑

如果需要轻量级实现,可以编写简单的转换函数:

function parseMarkdown(text) {
  return text
    .replace(/^# (.*$)/gm, '<h1>$1</h1>')
    .replace(/^## (.*$)/gm, '<h2>$1</h2>')
    .replace(/`([^`]+)`/g, '<code>$1</code>');
}

function MarkdownPreview({ text }) {
  const html = parseMarkdown(text);
  return <div dangerouslySetInnerHTML={{ __html: html }} />;
}

添加语法高亮

结合 highlight.js 实现代码块高亮:

react实现markdown

npm install highlight.js

使用示例:

import hljs from 'highlight.js';
import 'highlight.js/styles/github.css';

function HighlightMarkdown({ children }) {
  useEffect(() => {
    hljs.highlightAll();
  }, [children]);

  return <ReactMarkdown>{children}</ReactMarkdown>;
}

支持扩展语法

通过 remark 插件生态系统支持表格、数学公式等:

npm install remark-gfm remark-math rehype-katex

配置示例:

import remarkGfm from 'remark-gfm';
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';

<ReactMarkdown
  remarkPlugins={[remarkGfm, remarkMath]}
  rehypePlugins={[rehypeKatex]}
>
  {markdownContent}
</ReactMarkdown>

注意事项

  • 自定义解析时需注意 XSS 防护
  • 大型文档考虑虚拟滚动优化性能
  • 移动端需添加合适的输入体验优化
  • 保存状态时建议同时存储原始 Markdown 和渲染结果

以上方案可根据项目需求组合使用,现成库适合快速开发,自定义解析适合特定需求场景。

标签: reactmarkdown
分享给朋友:

相关文章

react native 如何

react native 如何

安装 React Native 开发环境 确保系统已安装 Node.js(建议版本 16 或更高)。通过以下命令安装 React Native CLI 工具: npm install -g reac…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: node…

如何生成react代码

如何生成react代码

使用 Create React App 生成项目 安装 Node.js 后,通过命令行工具运行以下命令创建新项目: npx create-react-app my-app cd my-app npm…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

如何构建react

如何构建react

构建 React 项目的步骤 安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过命令行验证: node -v npm -v 使用 Create React Ap…

react 如何修改state

react 如何修改state

修改 state 的基础方法 在 React 中,state 的修改必须通过 setState 方法(类组件)或 state 更新函数(函数组件)。直接修改 state 会导致组件不会重新渲染,且可能…