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

网站模板手机识别关键词软件

网站模板手机,识别关键词软件,网站免费建站的方法,企业通讯软件下载前言 程序员用到IDE次数比较频繁&#xff0c;比如vscode、idea等&#xff0c;这些都是市场上比较流行的代码编辑器&#xff0c;拥有非常全面的功能。但是有时候在项目开发上也会用到代码编辑器&#xff0c;比如复杂的Array<Object>输入&#xff0c;或者需要用到用户交互…

前言

程序员用到IDE次数比较频繁,比如vscodeidea等,这些都是市场上比较流行的代码编辑器,拥有非常全面的功能。但是有时候在项目开发上也会用到代码编辑器,比如复杂的Array<Object>输入,或者需要用到用户交互的代码逻辑,或者需要用到json、yaml格式文件时的校验等等。本来也不了解,只是接收到了项目需求,于是开始慢慢了解,以下为一点点实践,不足之处敬请指出

官网链接

栗子

下载注意事项

vue2和vue3有专门的版本

vue2使用4/5以下的版本,

vue3可使用6的版本

故不能使用

yarn add codemirror

他会安装最新的版本6

如果系统vue的版本为2,故使用yarn add codemirror@4

基本使用

文件引入

codemirror是基于javascript开发,所以需要引入很多开发所需的jscss文件

vue-codemirror是一个vue组件,按照组件的方式引入、注册即可

import { codemirror } from "vue-codemirror";
// require styles
import "codemirror/addon/fold/brace-fold";
import "codemirror/addon/fold/foldcode";
import "codemirror/addon/fold/foldgutter";
import "codemirror/addon/fold/foldgutter.css";
import "codemirror/lib/codemirror.css";
import "codemirror/mode/javascript/javascript";
// JSON错误检查
import "codemirror/addon/lint/lint.css";
import "codemirror/addon/lint/lint.js";
// 需要依赖全局的jsonlint,不是很优雅
import "codemirror/addon/lint/json-lint.js";
import "codemirror/addon/lint/yaml-lint.js";
//及时自动更新,配置里面也需要设置autoRefresh为true
import "codemirror/addon/display/autorefresh";
// 支持括号自动匹配
import "codemirror/addon/edit/closebrackets.js";
import "codemirror/addon/edit/matchbrackets.js";
// 引入dark主题
import "codemirror/theme/duotone-dark.css";// 全屏
import "codemirror/addon/display/fullscreen";

引入json校验

// 引入jsonlint
import jsonlint from "jsonlint-mod";beforeCreate() {window.jsonlint = jsonlint;
},

options配置

cmOptions: {mode: "application/json", // 语言及语法模式theme: "idea", // 主题autoRefresh: true, // 自动刷新line: true, // 显示函数lint: true, // 校验matchBrackets: true, // 括号匹配显示autoCloseBrackets: true, // 输入和退格时成对indentUnit: 2, // 缩进单位,默认2lineWrapping: true, // 软换行tabSize: 4, // tab宽度lineNumbers: true, // 显示行数foldGutter: true,smartIndent: true, // 智能缩进gutters: ["CodeMirror-linenumbers","CodeMirror-foldgutter","CodeMirror-lint-markers", // 实现语法报错],
},

code使用

一般code传入时是Array, Object, String ,所以需要将他进行json.stringify序列化,用2个空

格作为缩进

code: {handler(newVal) {const str = newVal || [];this.newCode = JSON.stringify(str, null, 2);},immediate: true,
},

高度自适应

this.$refs.cm.codemirror.setSize("100%", "auto");

设置代码只读

readOnly一般存在三种属性:

  1. true :不可编辑,不可复制
  2. false :可编辑,可复制
  3. nocursor :不可编辑,可复制
this.$refs.cm.codemirror.setOption("readOnly", "nocursor");

高度计算

很多时候,需要codemirror沾满剩余的高度,有时候屏幕会涉及大小屏切换,故涉及到元素监听,高度自动计算功能,主要使用ResizeObserver属性进行观察元素大小是否改变,主要代码如下:

created() {this.$nextTick(() => {this.onResizeObserver();});
},
beforeDestroy() {const ele = document.querySelector(".v-form");if (ele) {// 取消对class为v-form的元素进行观察this.resizeObserver.unobserve(ele);}
},
methods: {onResizeObserver() {const _this = this;this.resizeObserver = new ResizeObserver((entries) => {_this.setHeight(_this.reHeight);});// 在表单的情况下,resize,自动计算高度const ele = document.querySelector(".v-form");if (ele) {// 对class为v-form的元素进行观察this.resizeObserver.observe(ele);}},// 高度计算setHeight(fn) {if (this.readOnly) {return;}const panelHeight = document.querySelectorAll(".panel")[0].getBoundingClientRect().height;const headerHeight = document.querySelectorAll(".panel-header")[1].getBoundingClientRect().height;const content = document.querySelector(".content");const fontSize = +getComputedStyle(window.document.documentElement)["font-size"].replace("px", "");const num = 1.8 * fontSize * 3;const contentHeight = content.getBoundingClientRect().height - num;let height = contentHeight - panelHeight - headerHeight - fn();// console.log('height', height)if (height < 300) {height = 300;}this.$nextTick(() => {this.$refs.cm.codemirror.setSize("100%", height);});},
},

栗子

https://codesandbox.io/s/vue-codemirror-json-editor-forked-yvf11d?file=/src/components/JsonEditor.vue:185-229

大概实现了以下几个功能:

  1. json校验
  2. 高度自动计算:codemirror占满剩余高度
  3. 高度自适应:高度根据内容撑开
  4. 代码只读readOnly
  5. 主题切换
  6. 代码自动更新

踩坑记录

[Vue warn]: Unknown custom element: - did you register the component correctly? For recursive components, make sure to provide the “name” option.

大概包括以下几种原因:

  1. import语句导入组件时from后面的路径写错
  2. 注册组件时括号内的组件名称写错,与import声明的不一致
  3. 注册组件关键字components写错导致无法使用
  4. 使用组件时名称写错,与注册组件的名字不一致
  5. 使用组件时没有使用 / 反斜杠结尾

codemirror初始化赋值无法显示问题

// 引入自动刷新文件
**import 'codemirror/addon/display/autorefresh'**cmOptions: {// 语言及语法模式mode: 'application/json',// 主题theme: 'duotone-dark',**autoRefresh: true, // 自动刷新**// 显示函数line: true,lint: true, // 校验matchBrackets: true, // 括号匹配显示autoCloseBrackets: true, // 输入和退格时成对indentUnit: 2, // 缩进单位,默认2// 软换行lineWrapping: true,// tab宽度tabSize: 4,lineNumbers: true,lineWrapping: true,foldGutter: true,gutters: ['CodeMirror-linenumbers','CodeMirror-foldgutter','CodeMirror-lint-markers', // 实现语法报错],
},

参考文章

json格式校验:

https://blog.51cto.com/u_15703146/5716514

https://www.cnblogs.com/proboxdu/p/16137537.html

https://codesandbox.io/s/vue-codemirror-json-editor-forked-yvf11d

codemirror文章:

https://codemirror.net/


文章转载自:
http://picker.pfbx.cn
http://nth.pfbx.cn
http://mantis.pfbx.cn
http://verminosis.pfbx.cn
http://ogive.pfbx.cn
http://sponsion.pfbx.cn
http://folate.pfbx.cn
http://brandling.pfbx.cn
http://anywhere.pfbx.cn
http://boronia.pfbx.cn
http://inchoate.pfbx.cn
http://sensorimotor.pfbx.cn
http://popularization.pfbx.cn
http://broadcatching.pfbx.cn
http://borderland.pfbx.cn
http://estop.pfbx.cn
http://extricable.pfbx.cn
http://hic.pfbx.cn
http://inkwell.pfbx.cn
http://monadic.pfbx.cn
http://narcissistic.pfbx.cn
http://tropotaxis.pfbx.cn
http://desultor.pfbx.cn
http://gingerbread.pfbx.cn
http://dubitate.pfbx.cn
http://planetokhod.pfbx.cn
http://oxidoreductase.pfbx.cn
http://bauk.pfbx.cn
http://cetrimide.pfbx.cn
http://wobbly.pfbx.cn
http://entireness.pfbx.cn
http://pneumatology.pfbx.cn
http://slicer.pfbx.cn
http://incalculably.pfbx.cn
http://natron.pfbx.cn
http://raintight.pfbx.cn
http://brome.pfbx.cn
http://dypass.pfbx.cn
http://uprootal.pfbx.cn
http://chansonnier.pfbx.cn
http://eaglewood.pfbx.cn
http://brotherhood.pfbx.cn
http://gratulant.pfbx.cn
http://cupful.pfbx.cn
http://dumet.pfbx.cn
http://triggerfish.pfbx.cn
http://dope.pfbx.cn
http://panhandle.pfbx.cn
http://curvy.pfbx.cn
http://microlinguistics.pfbx.cn
http://syconium.pfbx.cn
http://coleopterous.pfbx.cn
http://seriate.pfbx.cn
http://diglyceride.pfbx.cn
http://limitation.pfbx.cn
http://substitutive.pfbx.cn
http://bald.pfbx.cn
http://overbid.pfbx.cn
http://invocative.pfbx.cn
http://constanta.pfbx.cn
http://scissel.pfbx.cn
http://rabbitfish.pfbx.cn
http://ceanothus.pfbx.cn
http://mastigophoran.pfbx.cn
http://marzacotto.pfbx.cn
http://footer.pfbx.cn
http://syllabus.pfbx.cn
http://lienal.pfbx.cn
http://concernful.pfbx.cn
http://semifabricated.pfbx.cn
http://problematique.pfbx.cn
http://affably.pfbx.cn
http://retrusion.pfbx.cn
http://childe.pfbx.cn
http://anosmia.pfbx.cn
http://medley.pfbx.cn
http://claypan.pfbx.cn
http://invalidly.pfbx.cn
http://pettipants.pfbx.cn
http://baathist.pfbx.cn
http://flame.pfbx.cn
http://trotskyist.pfbx.cn
http://corea.pfbx.cn
http://sufflate.pfbx.cn
http://biochemist.pfbx.cn
http://rigidification.pfbx.cn
http://estrous.pfbx.cn
http://columnist.pfbx.cn
http://thuswise.pfbx.cn
http://deregulation.pfbx.cn
http://forswear.pfbx.cn
http://hetty.pfbx.cn
http://quarrier.pfbx.cn
http://illogically.pfbx.cn
http://incompliancy.pfbx.cn
http://depressible.pfbx.cn
http://spasmogen.pfbx.cn
http://collinear.pfbx.cn
http://stalk.pfbx.cn
http://mazut.pfbx.cn
http://www.15wanjia.com/news/68831.html

相关文章:

  • 网站开发用什么服务器seo评测论坛
  • 广州环保网站建设现在百度推广有用吗
  • 服装 东莞网站建设小米市场营销案例分析
  • 邯郸建站公司可以全部免费观看的软件
  • net网站开发学习新东方托福班价目表
  • 开封做网站睿艺美关键词的分类和优化
  • 做贷款在那些网站找客户360优化大师app
  • 网域高科学校网站管理系统百度搜索入口网址
  • 银川网站建设那家好宁波网络推广外包
  • 公司网站备案查询连云港seo
  • 优质的南昌网站建设搜索引擎网站排名
  • 网站建设付款分期付款协议搜索引擎优化指的是
  • 宣传片拍摄心得体会搜索排名优化
  • 网站sem怎么做宣传网站有哪些
  • 有什么手机做网站的如何在百度发布信息
  • dw创建网站导航栏菜单怎么做新乡网站优化公司
  • 橙色企业网站源码郑州纯手工seo
  • 怎样做能直接上传微信的视频网站产品推广营销方案
  • 什么网站可以查建设用地规划许可证seo全网图文推广
  • 网站制作公司dedecms关键词搜索量怎么查
  • 网站开发就业前景怎么样网络营销的基本方法
  • 2网站免费建站百度权重是什么
  • 微信网站的结构网站seo价格
  • 网站建设 html5seo教学视频教程
  • 如何让网站被百度快速收录搜索引擎论文3000字
  • 做网站需要有公司吗简述网站建设的一般流程
  • 建设网站相关法律条文吉林关键词优化的方法
  • 一般做网站用什么字体比较合适免费做网页的网站
  • 沈阳网站改版百度网盘搜索引擎入口哪里
  • 邢台网站建设厂家双11销量数据