react-codemirror实现log日志文件的输出

在做react项目时,碰到一个需求,需要将收集到的日志信息输入到页面上,而且高亮显示,这样方便用户/管理员查看。形似这样:

本来的思路是:通过js去读取日志文件中的内容,然后将日志一行一行的输出到文本域中,然后根据指定的字符串切割,显示不同的颜色,但是考虑到左侧需要显示行号以及日志的高亮显示,这样做起来就很麻烦。于是在网上搜罗了一下发现,codemirror专门为react做了一个组件react-codemirror.

研究了一下看看这个是怎么在react中使用的,怎么实现多行显示。

1.安装

npm install @uiw/react-codemirror --save

2.在js中引入

import CodeMirror from '@uiw/react-codemirror';
import 'codemirror/keymap/sublime';
import 'codemirror/theme/eclipse.css';
import 'codemirror/theme/monokai.css';

其中eclipse.css和monokai.css是两种不一样的主题,第一种是在eclipse打开时的高亮形式,第二种是在monokai中的高亮形式,在组件中的options配置项中会用得到

3.使用组件


                
Asset Size Chunks Chunk Names CHANGELOG.md 0 bytes [emitted] LICENSE 0 bytes [emitted] README.md 346 bytes [emitted] index.html 183 bytes [emitted] module.js 5.79 MiB module [emitted] [big] module module.js.map 5.8 MiB module [emitted] [dev] module plugin.json 284 bytes [emitted] Entrypoint module [big] = module.js module.js.map [../node_modules/@codemirror/lang-javascript/dist/index.js] 18.4 KiB {module} [built] [../node_modules/@codemirror/view/dist/index.js] 450 KiB {module} [built] [../node_modules/@uiw/react-codemirror/esm/index.js] 2.33 KiB {module} [built] [../node_modules/echarts/index.js] 7.68 KiB {module} [built] [../node_modules/echarts/lib/export/charts.js] 3.34 KiB {module} [built] [../node_modules/echarts/lib/export/components.js] 3.98 KiB {module} [built] [./components/CodeEditor.tsx] 1.91 KiB {module} [built] [./components/CodeEditorOption.tsx] 1.04 KiB {module} [built] [./components/EChartsPanel.tsx] 15.4 KiB {module} [built] [./module.ts] 1.51 KiB {module} [built] [./utils/dataFormatter.ts] 897 bytes {module} [built] [./utils/safeEval.ts] 669 bytes {module} [built] [@grafana/data] external "@grafana/data" 42 bytes {module} [built] [@grafana/ui] external "@grafana/ui" 42 bytes {module} [built] [react] external "react" 42 bytes {module} [built] + 559 hidden modules Child html-webpack-plugin for "index.html": Asset Size Chunks Chunk Names index.html 538 KiB 0 Entrypoint undefined = index.html [../node_modules/html-webpack-plugin/lib/loader.js!../node_modules/html-webpack-plugin/default_index.ejs] 376 bytes {0} [built] [../node_modules/lodash/lodash.js] 531 KiB {0} [built] [../node_modules/webpack/buildin/global.js] 472 bytes {0} [built] [../node_modules/webpack/buildin/module.js] 497 bytes {0} [built]
03-15
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值