自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 git 删除远程仓库的某次提交

今天在推送代码的时候,不小心把错误的提交推到远程仓库了,进行退回git reset commitId ((注:不要带–hard)到上个版本)git stash 暂存修改git push --force 强制push,远程的最新的一次commit被删除git stash pop 释放暂存的修改,开始修改代码git add . -> git commit -m "massage" -> git push...

2021-04-26 19:27:30 978

原创 前端利用html2canvas+jspdf实现html转pdf

公司业务的月报页面,要实现pdf下载,查了资料,大概有个方向,就是利用html2canvas把html转为图片,然后再生成pdf格式的文件实现了下载。核心代码import html2canvas from 'html2canvas';import JSPDF from 'jspdf';export default { install(Vue, options) { Vue.prototype.ExportSavePdf = function(htmlTitle, currentTime)

2021-02-04 16:32:02 548

原创 在vuejs项目中通过配置configureWebpack引入高德地图插件

项目中数据可视化大屏需要使用到高德地图,但是高德地图目前只支持script标签引入,查了一些资料之后可以通过以下配置引入高德地图首先在index.html中引入高德地图 <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=你的key"></script>然后在vue.config.js中修改配置 configureWebpack: config =&gt

2020-12-09 11:04:19 743

原创 vue-cli3的eslint配置问题

今天在项目开发中,封装滚动插件的时候,引入resize-evernt.js时候,遇到一个报错:Unnecessary escape character经排查发现是eslint代码检查报错,因为是对\这个字符进行转义导致的,解决方案定为,在eslint的检查中,去掉对这项字符的检查。项目是基于vue-cli3搭建的,所以在package.js的eslintConfig中配置即可。 "eslintConfig": { "root": true, "env": { "nod

2020-05-26 10:58:02 1725

原创 vuejs通过自定义指令获取元素的宽高

由于项目中需求,需要获取元素的宽高。在查阅方法,可以选择通过指令的方式来获取。网上的方法一般是通过CSSStyleDeclaration来获取元素的宽度,尝试之后获取都是空的。经不停的测试之后,可以采用以下方法来获取: directives: { resize: { inserted(el, bind) { const width = window.getComputedStyle(el).width console.log(width)

2020-05-22 17:14:47 1228

原创 antd-design-vue modal模态框组件自定义footer脚部的按钮

项目中需求,模态框只保留一个确定按钮,去掉取消按钮。官方文档中只写了去掉全部的脚部按钮,:footer设置为null,这个补不满足需求,在多查找资料解决了此问题在slot插槽中,重新定义按钮代码如下: <a-modal :title="title" :width="950" okText="确定" cancelText="取消" :visible="visible" @cancel="

2020-05-19 17:55:46 14597 1

原创 使用antd-design-vue 模态框组件 使用v-model报错的问题

在封装模态框组件的时候,遇到一个问题,1、模态框的显示与隐藏是由父组件传递过来的visible控制,在模态框上使用默认的v-mode,使用计算属性缓存visible这个属性值,,当模态框组件改变了这个值,会报:[Vue warn]: Computed property “showModal” was assigned to but it has no setter.然后再设置set方法,会导致栈溢出。<a-modal v-model="showModal" :title="t

2020-05-19 14:10:35 4045 1

原创 mac中nginx的一些报错处理

1、报错信息:nginx: [alert] could not open error log file: open() “/usr/local/var/log/nginx/error.log” failed (13: Permission denied)2020/03/20 00:10:05 [emerg] 40840#0: open() “/usr/local/var/log/nginx/ac...

2020-03-20 01:43:37 645

原创 redis

redis,web-server最常用的缓存数据库,数据放在内存当中。相比于mysql,访问速度快(内存和硬盘不是一个数量级的)如图所示,这个方案将web-server和redis拆分为两个单独的服务,双方都是独立的,可扩展的(例如都扩展成集群),包括mysql也是一个单独的服务,也可扩展。session适合用redis的原因1、session访问频率高,对性能要高2、session可...

2020-03-13 14:38:36 67

原创 登录的实现原理,cookie,session

因为最近在搭博客,有涉及到登录这方面的功能。于是总结一下登录的实现原理。HTTP 协议是无状态的,怎么能记录用户的登录状态呢?鉴于 HTTP 是无状态协议,之前已认证成功的用户状态是无法通过协议层面保存下来的,即,无法实现状态管理,因此即使当该用户下一次继续访问,也无法区分他和其他的用户。但是HTTP请求每次都会带上cookie,所以,cookie是实现登录的基础。当前端将用户名和密码发来之...

2020-03-13 13:16:02 1953

原创 nodeJS登录验证对cookie做限制

最近在做博客项目中,学到了cookie是在做登录验证的基础,那么,当前端发来用户名和密码,并且校验成功之后,需要在cookie中写入一些信息,代表此用户已登录,并且不能让客户端再随意修改此cookie。那么可以如下设置 res.setHeader('Set-Cookie', `username='${data.username}';path:/;httpOnly;e...

2020-03-13 10:25:31 357

原创 二叉树排序-----中序排列

如图的所示,一棵二叉树,从树的跟节点开始遍历,如果左子节点存在先遍历左子节点或者左子树,如果不存在了则先打印左子节点,再返回,打印父节点,再遍历此节点的右子节点或者右子树。依次来看,对于图上的这颗二叉树,会打印输出:1,3,4,6,7,8,10,13,14这样的升序排列。在之前的代码上进行改造。主要添加了inOrderTraverse,inOrderTraverseNode这两个方法。...

2020-03-10 17:09:38 1433

原创 创建一棵二叉树

最近也有在补算法这方面的东西,如图所示的一棵二叉树,左子节点小于父节点,父节点小于自己的右子节点,那么如何构建一棵这样的二叉树呢?我通过下面JS语句进行了演示。分享一下。...

2020-03-10 15:10:23 1437

原创 简单的SQL语句

最近在构建一个博客,web-Server用的nodeJS,数据库使用的是mySQL,所以学习了一些简单的SQL语句,用于增删改查。首先use 库名1.增加增加表列 insert into 表名 (列名) values(值) 关键字使用``包起来insert into users (username,`password`,realname) values ('zhangsan',...

2020-03-10 14:46:16 124

原创 V8引擎内存回收机制

新生代内存空间存放一些新产生的变量,里面的变量都比较小,存在时间短当新生代内存空间要回收了,将一些活着的变量放到to空间里面,from里面的全部销毁,然后to、from对调,依次循环老生代内存空间垃圾回收算法新生代简单的说就是复制 牺牲空间换时间老生代就是标记删除整理黑色的为标记要删除的变量,当删除后剩下的有很多空间,就需要进行整理。把剩下的整理到一起为什么要整理呢?比...

2020-03-06 11:14:22 173

原创 mac下开启停止mysql的操作

最近有用到mysql,有时候停止服务停止不了,图示点了这个按钮之后也没有反应,这时候可以使用命令行去停止cd /usr/local/mysql/support-files 启动mysql服务sudo /usr/local/mysql/support-files/mysql.server start停止mysql服务sudo /usr/local/mysql/support...

2020-03-06 11:00:44 824

原创 react中input的onChange事件会报错并取不到input的值的问题

<input onChange={this.handleInputChange}></input>handleInputChange = (e)=>{ console.log(e) }这样操作时,控制台报错Warning: This synthetic event is reused for performance reasons. If you'...

2020-03-01 14:52:30 2566

原创 node基础

node的作用和应用1、脱离浏览器运行JS2、后台编写API3、Webpack,gulp,Npm等等4、中间层:服务器中负责IO读写中间层的服务器node作为中间层的优势- 性能:异步IO- 处理数据- 安全性node的模块全局模块(对象)随时随地都能使用process.env 环境变量process.argv系统模块使用require()引入自定义模块...

2020-02-17 18:25:34 85

原创 proxy

Proxy对象用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。其实就是在对目标对象的操作之前提供了拦截,可以对外界的操作进行过滤和改写,修改某些操作的默认行为,这样我们可以不直接操作对象本身,而是通过操作对象的代理对象来间接来操作对象今天学习了两个proxy的新用法1.校验类型 const validator = { name:(va...

2020-02-14 21:51:05 356

原创 Object.defineProperty与proxy

在vuejs2里面,实现数据的双向绑定是利用的Obeject.difineProperty属性去劫持对象的属性,下面实现了一个简单的数据双向绑定<body> <div id="app"></div> <script> function Vue(){ this.$data = { a:1...

2020-02-14 15:18:14 94

原创 git 从基础开始梳理

gitk 图形界面查看修改的东西拉取git pull --rebase拉取不产生冲突,会直接 rebase,不会产生分支合并操作,如果有冲突则需要手动 fix 后,自行合并。1.git reset 版本回退git reset --hard HEAD^ 回退到最近的一个版本git reset --hard commit_id 回退到指定版本的idHEAD指向的版本就是...

2020-02-12 15:23:51 195

原创 window.btoa 和 window.atob

在javascript中如何使用Base64转码var str = 'javascript';window.btoa(str)//转码结果 "amF2YXNjcmlwdA=="window.atob("amF2YXNjcmlwdA==")//解码结果 "javascript"对于转码来说,Base64转码的对象只能是字符串,因此来说,对于其他数据还有这一定的局限性,在此特别需要注...

2020-02-09 20:09:11 340

转载 前端文件上传原理

之前做了大文件上传,于是对文件上传这个概念进行了深入的了解了一下。原理由于浏览器本身的限制,浏览器是不能直接操作文件系统的,需要通过浏览器所暴露出来的统一接口,由用户主动授权发起来访问文件动作,然后读取文件内容进指定内存里,最后执行提交请求操作,将内存里的文件内容数据上传到服务端,最后服务端解析前端传来的数据信息后存入文件里。最简单的上传实现这里利用form表单标签和类型为file的Inp...

2020-02-09 13:43:21 1224 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除