当前位置:首页 > 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 如何执行

react 如何执行

安装 React 确保 Node.js 安装在本地环境中。通过以下命令创建新的 React 项目: npx create-react-app my-app 进入项目目录并启动开发服务器:…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 进行组件记忆 React.memo 是一个高阶组件,用于缓存函数组件的渲染结果,避免不必要的重新渲染。只有当组件的 props 发生变化时,才…

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Reac…

如何选购react

如何选购react

选购 React 相关产品或服务的建议 React 是一个用于构建用户界面的 JavaScript 库,广泛应用于前端开发。以下是选购 React 相关产品(如课程、书籍、工具、组件库等)的参考方法:…