React使用CodeMirror (代码编译器标签) 笔记

React使用CodeMirror (代码编译器标签) 笔记:

1. 下载CodeMirror
  • 下载CodeMirror

    由于新版的CodeMirror下载的包少很多东西,这里我们下载老版的

    npm install codemirror@5.62.3
    
  • 下载react-codemirror

    npm install react-codemirror
    npm i --save-dev @types/react-codemirror
    
2. 使用CodeMirror
  • 导入CodeMirror组件:

    import CodeMirror from "react-codemirror"
    

    这里可能会问为什么不使用react-codemirror2

    这是因为react-codemirror2CodeMirror标签在加载过程中会被重复加载两次,也就是在前端显示两个CodeMirror标签,所以我们这里不用react-codemirror2

  • 引入核心文件:

    import "codemirror/lib/codemirror.js"
    import "codemirror/lib/codemirror.css"
    
  • 引入其它的文件 (用于配置CodeMirror标签的一些属性):

    // 引入代码模式
    import 'codemirror/mode/javascript/javascript'
    // 引入背景主题
    import "codemirror/theme/yonce.css"
    ...
    
  • 在前端调用CodeMirror标签

    <CodeMirror
        value='console.log(10)' // 设置CodeMirror标签的初始值
        // 设置CodeMirror标签的相关参数
    	options={{
            mode: 'javascript', // 设置该代码编译器所编辑的语言
            theme: "yonce", // 代码编译器主题
            lineNumbers: true // 显示行号
        }}
        // 编译器内容变化后,输出变化后的内容  
        onChange={(code) => {
            console.log(code)
        }}
    />
    
  • 当前效果如下:在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`CodeMirror` 和 `react-codemirror2` 是两个用于创建交互式代码编辑器的库,结合使用它们可以在 React 应用中实现强大的代码提示功能。以下是使用这两个库实现代码提示的一般步骤: 1. 安装依赖: - 首先,你需要安装 `codemirror` 和 `react-codemirror2`,可以通过 npm 或 yarn 进行安装: ``` npm install codemirror react-codemirror2 ``` 2. 引入组件: 在你的 React 组件中,引入 `CodeMirror` 和 `Editor` 组件: ```jsx import { Editor } from 'react-codemirror2'; import 'codemirror/mode/javascript/javascript'; import 'codemirror/addon/lint/lint'; import 'codemirror/addon/lint/javascript-lint'; ``` 3. 设置配置选项: 创建一个 CodeMirror 的配置对象,其中包含 `lint` 和 `autocompletion` 配置: ```jsx const CodeEditor = ({ value, onChange }) => { const options = { lineNumbers: true, mode: 'javascript', theme: 'abcdef', // 选择你喜欢的主题 lintWith: 'eslint', // 使用 ESLint 作为 lint 工具 completion: { hint: CodeMirror.hint.bracketedCompletion, // 自动补全功能 }, }; return ( <Editor value={value} options={options} onChange={onChange} spellCheck={true} // 如果需要启用拼写检查 /> ); }; ``` 4. 实现自动提示: - `completion` 配置中的 `hint` 属性指定了 CodeMirror 使用哪种类型的提示。`bracketedCompletion` 是一种常用的提示类型,它会在输入后显示可能的代码片段。 5. 使用和初始化: 在你的组件中初始化 `CodeEditor` 组件,并提供初始代码值和 onChange 回调,用于处理用户输入改变后的操作: ```jsx const [code, setCode] = useState(''); // 初始化代码 const handleCodeChange = (newCode) => { setCode(newCode); // 如果需要,你可以在这里处理自动补全结果或发送到服务器进行实时建议 }; return ( <CodeEditor value={code} onChange={handleCodeChange} /> ); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值