当前位置: 首页 > news >正文

做网站字体网站建设 项目书 框架

做网站字体,网站建设 项目书 框架,建设一个旅游网站毕业设计,经销商怎么做网站Monaco 是微软开源的一个编辑器,VSCode 也是基于 Monaco 进行开发的。如果在 React 中如何使用 Monaco,本文将介绍如何在 React 中引入 Monaco。 安装 React 依赖 yarn add react-app-rewired --dev yarn add monaco-editor-webpack-plugin --dev yarn…

Monaco 是微软开源的一个编辑器,VSCode 也是基于 Monaco 进行开发的。如果在 React 中如何使用 Monaco,本文将介绍如何在 React 中引入 Monaco。

安装 React 依赖

yarn add react-app-rewired --dev
yarn add monaco-editor-webpack-plugin --dev
yarn add monaco-editor
yarn add react-monaco-editor

创建Webpack 配置文件并添加插件

在项目的根目录下创建 config-overrides.js

const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');module.exports = function override(config, env) {config.plugins.push(new MonacoWebpackPlugin({languages: ['json']}));return config;
}

引入 Monaco 组件

核心函数 handleEditorDidMount,行选中时,在行尾添加一句话,通过事件监听函数 onDidChangeCursorSelection 和 Decoration 进行实现

import logo from './logo.svg';
import './App.css';
import MonacoEditor from 'react-monaco-editor';
import { useRef, useState,useEffect }  from 'react';function App() {const editorRef = useRef(null);const monacoRef = useRef(null);const decorationsRef = useRef([]);const handleEditorDidMount = (editor, monaco) => {editorRef.current = editor;monacoRef.current = monaco;// Add an event listener for cursor position changeseditor.onDidChangeCursorSelection(() => {const selection = editor.getSelection();// if (selection.isEmpty()) {//   // Remove decorations if selection is empty//   editor.deltaDecorations(decorationsRef.current, []);//   return;// }const lineNumber = selection.positionLineNumber;const lineContent = editor.getModel().getLineContent(lineNumber);if (lineContent !== "") {// Add decoration if the line starts with 'var'const newDecorations = editor.deltaDecorations(decorationsRef.current, [{range: new monaco.Range(lineNumber, 1, lineNumber, 1),options: {isWholeLine: true,afterContentClassName: 'myAfterContentDecoration'}}]);decorationsRef.current = newDecorations;} else {// Remove decorations if the line does not start with 'var'editor.deltaDecorations(decorationsRef.current, []);}});};useEffect(() => {// Define custom styles for the decorationsconst style = document.createElement('style');style.innerHTML = `.myAfterContentDecoration::after {content: ' // 备注';color: green;font-weight: bold;}`;document.head.appendChild(style);}, []);return (<div style={{'margin':'100px auto', 'width': '800px'}}><MonacoEditorwidth="800"height="600"language="javascript"theme="vs-dark"value={""}options={""}editorDidMount={handleEditorDidMount}/></div>);
}export default App;

在这里插入图片描述

总结

Monaco 功能非常强大,API 也比较复杂,后面后陆续看看它的 API 如何使用。

http://www.yayakq.cn/news/392464/

相关文章:

  • 六安建设厅网站php 判断 $_get 然后跳转到相印的网站
  • 建设银行 福建分行招聘网站狗铺子做网页在那个网站
  • 做视频教育网站制作古城西安网页
  • 个人可以架设网站吗杭州高端企业网站建设
  • 常用来做网站首页wordpress页面内容
  • 宁波市余姚建设局网站网站建设介绍文字
  • 南宁企业如何建网站中山网站建设文化策划书
  • 内部网站管理办法照片网站模版
  • 网站建设前期需要做出的准备山西太原网站建设
  • 徐州有哪些做网站门户网站 商城系统
  • 成都信用体系建设网站山东网站备案公司
  • 做便民工具网站怎么样电商类网站开发费用
  • 怎么样建设一个电影网站视频下载wordpress 门户网站
  • 北理工网站开发与应用答案办网站如何备案
  • 网站做代理还可以刷水吗推广普通话主题班会
  • asp网站后台管理教程分类信息网站怎么做SEO
  • dede茶叶网站模板网站建设与维护试卷 一
  • 网站开发费用是研发费用网页制作下载什么软件
  • 松原做网站三合一网站什么意思
  • 房产网站内容建设部门规划辽宁建设工程信息网停用
  • ppt要怎么做网站网页设计与制作课程实施报告
  • 在线做ppt模板下载网站吉林省建设厅
  • 学校网站建设系统商务网站开发需求分析
  • 长春找工作最新招聘信息seo工作怎么样
  • 国内最好的摄影网站什么网站做h5做得好
  • 免费电视剧网站大全在线观看如何建设网站山东济南兴田德润官网
  • 网站建设不足之处公司做一个网站内容如何设计
  • 泰州哪里有做网站的网络公司4000-26互站网源码网站
  • 网站建设一年多少qq营销
  • 廊坊网站建设维护个人网站源码php