- 博客(74)
- 收藏
- 关注
原创 ES6 中的Set 数据结构
Set 是es6提供的新的数据结构,类似于数组,但元素都是唯一的,不会有重复的值Set本身是一个构造函数基本用法用来生成 Set数据结构可以接收一个数组或可迭代的数据结构作为参数,用来初始化数组去重: function noRepeat(array) { return Array.from(new Set(array)); } dedupe([1, 1, 2, 3]) // [1, 2, 3]*Array.from(Set)方法可以将 Set 结构转为数组*Set 加入值时
2022-03-31 16:36:02
1280
原创 使用git给项目添加标签
查看标签 git tag添加标签 git tag 标签名 git tag v1.0默认标签是打在最新提交的commit上的。如果想给历史commit 打上标签,只需在前面加上 commit id 即可 git tag 标签名 commitID git tag v1.0 ba9f9e查看当前标签指向的commit git show 标签名 git show v1.0添加一个有注释的tag git tag -a 标签名 -m '注释' git tag -a v1..
2021-10-08 14:29:23
455
原创 json和yaml之间的相互转换
借助 js-yaml 去实现 json转yaml一定安装的是 js-yaml,而不是yaml-js,目前没研究这两个什么区别,反正我刚开始安装错了,一直转换失败。npm install yaml --savenpm install js-yaml --saveimport YAML from 'yaml'import yaml from 'js-yaml'// jsonStr 为字符串形式的json数据export const json2yaml = (jsonStr) => {
2021-09-13 16:34:50
8121
5
原创 monaco-editor 实现配置
使用monaco-editor来实现项目中的编辑器,同事需要安装webpack插件monaco-editor-webpack-plugin来配合使用。如下:cnpm install monaco-editor --savecnpm install monaco-editor-webpack-plugin --save-dev # webpack 4.x 以上版本不需要执行此命令vue.config.js中:const MonacoWebpackPlugin = require('monaco-ed
2021-09-13 16:10:46
739
2
原创 文本溢出隐藏
css布局,单行文本以及多行文本溢出隐藏写法-webkit-line-clamp: 2; 几行就设置为几即可/*单行文本溢出隐藏:*/.text{ text-overflow: ellipsis; white-space: nowrap; overflow: hidden;}/*两行/多行文本溢出隐藏:*/.text-2{ display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp:
2021-09-06 11:20:35
82
原创 支持-webkit-前缀的浏览器,设置自定义滚动条
/*自定义滚动条(支持-webkit-前缀的浏览器)*/ ::-webkit-scrollbar{ /*滚动条宽度*/ width: 8px; height: 8px;}::-webkit-scrollbar-thumb{ /*拖动条*/ background-color: rgba(0,0,0,.3); border-radius: 6px;}::webkit-scrollbar-track{ /*背景槽*/ bacckground-color: #ddd; border-r
2021-09-03 16:16:02
121
原创 gitignore忽略已经push的文件
git rm xxxx --cached 删除暂存区文件git commit -m ‘删除xxxx文件忽略’
2021-08-05 16:01:15
468
原创 文字少时居中显示,多时居左显示
<div class="box"> <p class="content">xxxx</p></div>.box { text-align: center;}.content { display: inline-block; text-align: left;}
2021-07-30 15:20:47
236
原创 批量导出-先打包后下载为zip
批量导出需要先将文件组逐个添加打包,然后下载安装插件 jszip,file-saverrequire('script-loader!file-saver')import JSZip from 'jszip'exportConfig(){ const data = this.detailForm const zipname = '下载' const zip = new JSZip() const cache = {} data.forEach(item=>{ const filen
2021-01-19 16:42:36
257
原创 前端实现下载文件-js实现a标签下载
思路:使用a标签下载,点击下载时,创建a元素,模拟点击,下载完成后将a元素移除即可// 导出文件exportConfig(){ const content = output.replace(/(\n|\r)/gm,'\r\n') // 文件内容(此处我将后台返回的回车用正则匹配,否则txt文档中展示为空格) const filename = '下载.txt' // 文件名自定义 if("download" in document.createElement("a")){ const
2021-01-19 16:29:57
2249
2
原创 vue中页面缓存后destroyed失效,如何关闭定时器
场景页面中设置了定时器,如果组件销毁是没有关闭定时器,他还会一直执行,会非常耗性能,所以需要及时关闭定时器。关闭定时器vue项目中,正常情况下,我们在生命周期 destroyed 中关闭即可,一旦页面中使用了keep-alive 进行缓存,此时 destroyed 会失效。需要在 deactivated 钩子函数去关闭,他是 keep-alive 特有的钩子函数。代码没有缓存页面:destroyed(){ clearInterval(this.timer)}缓存过的页面:// 开启定时
2021-01-07 17:14:45
2800
原创 vue 监听路由变化
项目中会有一些逻辑处理,需要接听路由来实现vue2.x 中使用watch可以进行路由监听:watch:{ $route:{ handler(n,old){ console.log(n) // 逻辑处理 }, immediate: true, // 首次监听 }}
2021-01-07 16:55:50
176
原创 js回调函数callback
工作中会遇到一些场景,需要自己去封装含有回调函数的方法。封装callback函数function fn(callback){ setTimeout(function(){ alert("执行成功") let res = "校验结果" if (!callback) return return callback(res) },2000)}let save = {id: 1,use:'hah'}function use (data,save) { console.log
2020-11-27 17:21:21
608
原创 原生js获取浏览器可视区域的宽度和高度
支持高版本浏览器、IE9及其以上的window.innerWidth支持IE6/7/8document.documentElement.clientWidth或者document.body.clientWidth最终使用兼容写法:var w=window.innerWidth|| document.documentElement.clientWidth|| document.body.clientWidth;var h=window.innerHeight|| document.do.
2020-07-16 09:51:26
1621
原创 vue过滤器基础
过滤器过滤器实质不改变原始数据Vue过滤器定义1.全局定义// 全局注册Vue.filter('toRMB', function (rmb) { if (!rmb) return '' return `¥${rmb}`})2.局部定义toFixed(money) { if (!money) return '' money = Number(money) return money.toFixed(2)},Vue过滤器使用...
2020-06-18 16:09:33
145
原创 使用nodejs的http-server开启一个本地服务
1.安装node2.安装http-servernpm install http-server -g3.开启 http-server 服务终端进入目标文件夹,然后在终端输入:http-server -c-1 #只输入http-server,更新代码后,页面不会同步更新4.访问访问时如果打不开,则加上文件名:http://127.0.0.1:8081/index.html...
2020-05-27 15:23:03
1113
原创 vue中用watch监听复杂数据类型-首次赋值监听
项目中会有一些列表展示信息,而这些列表一般会有增删改除的功能,而新增和修改一般会用同一个表单来实现。当我们修改列表调用组件传值,回填数据时,会有watch来 监控数据变化,有的情况可能首次进入就需要监听,使用immediate:true来实现;监控复杂数据类型,需要用到深度监听deep: true'model':{ deep:true, //model 是一个obj对象,需要深度监听 immediate: true, // immediate选项可以开启首次赋值监听 handler (newDat
2020-05-15 17:59:04
2569
2
原创 elementui循环渲染的表单添加字段的校验
循环渲染的表单,添加字段校验,提交表单时判断校验结果,使用this.$refs[(“item” + index)].validate会报错this.$refs[(“item” + index)].validate is not a function需要这么使用:this.$refs[“item”][0].validate下面是项目中的代码:html代码<el-form v-for="(item,index) in receiptInfoList" :key="index" :mode
2020-05-14 18:28:39
1141
原创 formData控制台直接console.log查看为空
formData查看FormData是一种特殊类型的对象,使用console.log()直接打印一直是空,需要遍历一下在打印查看formData.forEach((value, key) => { console.log("key %s: value %s", key, value);})
2020-05-14 17:58:47
4306
原创 git diff 和 git stash将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录
1.查看修改$ git diff #查看修改本地$ git diff --cached #查看暂存区的修改2.隐藏修改$ git stash #隐藏修改$ git stash list #查看stash内容$ git stash apply #恢复修改,stash内容不删除$ git stash pop #恢复修改,同时删除stash内容...
2020-05-07 14:08:25
798
原创 git 忽略某个目录或文件处理办法
项目中如果依赖太大,一般也不会修改,就可以不用每次提交代码都去push,所以可以设置忽略git的操作,比如node_modules:本文都以node_modules 为例进行操作一般在项目根目录下创建一个.gitignore的文本文件,如下: 在执行git相关命令时就会忽略如下文件和目录有时候也会出现,在.gitignore文件添加了文件名称后,使用git status查看,还会有n...
2020-04-03 18:29:41
2305
原创 python函数传参总结
函数参数无参函数def fn (): pass有参函数-----------普通参数def fn (name,age): pass------------可变参数def fn (*argus): passdef fn (**kwargus): passdef fn (*argus,**kwargus): passdef fn (name,*argu...
2020-03-30 17:57:20
287
原创 git add .失败。warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal'
解决方案 :git add -A or git add --all 添加删除文件到stage
2020-03-12 21:33:13
513
原创 vue-admin禁止使用Esline 语法检查
在 vue.config.js 中 将lintOnSave: process.env.NODE_ENV === 'development'改为lintOnSave: false即可。
2020-03-01 00:19:31
355
原创 china.geo.json 数据获取
开源连接:当用svg绘制地图的时候用到的绘制数据:http://datav.aliyun.com/tools/atlas/#&lat=33.50475906922609&lng=104.2822265625&zoom=4json 在线转换,格式化https://www.json.cn/...
2020-02-26 23:38:30
2203
原创 vue中 input同时绑定了@blur和@keyup.enter事件,提交两次方法
如图:会出发两次方法解决方法:回车时提交失去焦点就好。如下图:
2020-01-22 14:08:16
1552
原创 vue中axios进行同步请求(async + await)
当需要异步请求的返回值时,可以在成功回调函数中进行操作;但是必须要同步执行的时候可以用 async + await 进行阻塞。1.await后面接一个会return new promise的函数并执行它2.await只能放在async函数里//示例1async function fnName() { const response = await new Promise(resolve...
2020-01-22 10:35:59
4977
原创 Promise {<pending>} __proto__: Promise [[PromiseStatus]]: "resolved" [[PromiseValue]]: true
vue 中使用axios异步调用时,打印出如上图的值,表示Promise并未完成,当前状态的值无法获取到。
2020-01-21 16:22:51
3590
3
原创 vue子组件提交接口,刷新父组件数据
当在子组件里更改了某些信息且关闭子组件后,需要父组件更新修改后的内容,操作如下:1、$emit触发父组件 @update="update(val)"子组件 this.$emit('update', newVal)2、使用$parent触发父组件 更新数据是由某个方法触发,如getList()子组件 this.$parent.getList()...
2020-01-19 18:18:37
3871
原创 axios请求时查看响应错误信息error.response.message
axios打印error只是返回错误,不会返回json格式的具体错误信息。需要error.response才能格式化返回。如下图:用error.response打印后可以返回如下图:tenant_userAdd(data).then(response => { console.log(response) this.$message.success('提交成功');...
2020-01-17 09:39:24
4344
2
原创 请求接口出现:no-referrer-when-downgrade
请求接口出现如上问题,可能是接口地址出现了问题,跟后台核实一下接口路径。
2020-01-17 09:06:16
11967
2
原创 vue运行后报错sockjs.js:1606 GET http://localhost:9528/sockjs-node/info?t=1578985745446 net::ERR_CONNECTIO
sockjs.js:1606 GET http://localhost:9528/sockjs-node/info?t=1578985745446 net::ERR_CONNECTION_REFUSEDvue项目本地运行后控制台报如上错,解决办法:依赖node_modules中打开sockjs-client -> dist -> sockjs.js 1605 行中注释代码。如下:...
2020-01-14 15:28:32
5814
3
原创 vue assigned to but it has no setter.
vue assigned to but it has no setter.computed 需要get(),在设置set();
2020-01-06 11:21:51
593
原创 flex布局justify-content:space-betwween;最后一行左对齐
布局时用到flex布局,当使用justify-content:space-betwween;时,最后一行不够数量会不整齐,如何让最后一行向左对齐?给其设置flex的父元素设置伪类,宽度为item的宽度即可。.f_voucher_cont{ padding:5px; flex-wrap: wrap; justify-content: space-between; ...
2019-12-08 22:36:22
714
原创 vue组件如何大量引入?
项目开发过程中,会遇到大量组件需要被引入,如果使用 1.import组件导入,2.components 组件定义注册,3.<标签> 组件在页面中引入 这三部就会很繁琐。如何才能快速引入大量组件呢?...
2019-12-08 22:16:24
810
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人