自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rambler_designer

个人网站最近上线了,欢迎大家访问 http://www.suhaoblog.cn

  • 博客(44)
  • 收藏
  • 关注

原创 Diff算法实现之Snabbdom

一、前言闲着没事逛B站,发现了尚硅谷推出的关于Diff的课程,正好面试种也常问到,就学习了一下。这个课程主要围绕Snabbdom这个库,贴一下视频地址【Vue源码解析之虚拟DOM和diff算法】这篇文章我会根据视频结合自己的理解对Diff过程进行讲解关于代码还是建议看Snabbdom库typescript版本的源码,地址首先要明确,Diff过程就是对新旧两个虚拟节点(VNode)进行比较,从而最小代价对DOM进行修补(patch)和更新二、概述1. 概念上树:在全文和流程图中都表示将虚拟

2021-11-03 17:08:34 303

原创 maven搭建私服之上传自定义库

前言上一篇博客更新了maven搭建自己的私服,地址( maven搭建私服)可能再公司开发的时候遇到这种情况,公司发展一段时间后自己封装了自己的框架,或者封装了很多的自定义包,每次都导入这些类不方便,打成jar包,每次用的时候再导入这个jar包,不过对于使用maven的项目,这样就比较麻烦了,因此可以使用私服,将包打包部署到服务器上,生成一个坐标,再使用的时候直接配置包的坐标即可流...

2019-07-29 10:50:25 272 4

原创 maven搭建私服

前言:本来想写的基础一点,可是想到如果搜索关键字是私服,应该是使用过maven,因此就不讲的太详细了在公司真正开发环境往往都是断网或者限制,配置阿里的镜像都无法正常下载,因此想到了在局域网搭建一个专门的服务器,也就是maven私服,搭建私服以后,别人在使用的时候配置私服的镜像,由于是局域网,传输速度会很快,由于博主也刚开始学,可能有些东西也不是特别清楚,经过一天摸爬滚打终于实现了搭建私...

2019-07-27 12:00:34 170

原创 Web中Controller返回值的封装

前言:在做web项目是,controller返回值总是不知道怎么写好,于是就是需要啥返回啥,在前端处理上就不太灵活,最近看一些项目,发现了巧妙的解决方法,可能大多数企业和公司也是这么做的无论什么请求都返回JSON,也就是一个对象转化为json,则个对象中封装一些常用属性,比如状态码status,msg(代表失败或者成功信息),最后是一个泛型的Data,请求的数据都放在这里封装类...

2019-07-02 16:30:28 2940

原创 Web基础之分页功能

前言:最近做学校的课程设计用到了分页这个功能,分页功能基本任何一个网站都会用到,以前一直用Mybatsi的PageHelper,吃快餐吃的都快忘了怎么拿筷子...(插件和框架虽好,不要过度依赖...有时候还是原生的好)于是今天就用最基础的JDBC实现了一个分页功能原理:说到分页功能,可能很多人没接触过,大体分析一下,分页这个功能其实看起来复杂,实际也没这么复杂,首先来看一下分...

2019-07-02 11:17:07 1627

原创 linux上搭建svn多仓库环境

有条件的还是建议用GIT,如果我带团队,也一定会主推GIT以下是我认为svn无法取代git的优点SVNGITGITSVN。

2022-07-21 17:20:30 1247 1

原创 svn多仓库权限控制

由于没有担任过项目经理,自己玩git和svn也就是单机,对权限控制这块是我自己的理解,大家斟酌是否适用自己的项目,在开发中应该由项目经理在trunk主干中建立branches/dev分支,开发人员就在这个分支中进行开发,开发结束后由项目经理推送到测试分支,测试人员在测试分支中进行测试权限测试过没问题,设计是否合理日后进行实践。...

2022-07-21 17:19:49 714

原创 vue+render实现el-table多表头

一、前言又好久没更新文章了。。补一篇,主要分享封装多表头表格和render函数实现多表头表格在公司维护低代码平台,有个需求需要通过拖拽配置一个多表头的表格(element的el-table),但是发现网上好像没什么资料,特别是平台是通过render函数实现的,对这个还不是很熟悉,摸索着写出来了,分享一下二、Render函数代码首先说明一下,用render函数纯粹是为了拖拽组件以及配置字段后之后可以即时预览,真正开发还是使用公用的表格组件这部分代码是公用的,多个组件都用这一个,我稍微改了改

2021-10-23 18:49:27 1348

原创 vue组件间通信方式(全)

title: VUE组件间通信方式总结typora-copy-images-to: …/…/article-imagesdate: 2021-09-09 13:13:25update:categories: 前端tags:事件总线vuextop: true一、面试题不用多说,参加过前端面试的小伙伴应该都遇到过,很经典的面试题。下面这些组件间的通信方式不但要会代码实现,还要知道每种方式的优缺点以及适用场景,学会灵活运用。听别人说过一句话,原文忘记了,只记得大概是说:架构师在技术选.

2021-09-14 09:38:20 205

原创 正则表达式详解

title: 正则表达式语法详解date: 2021-08-20 17:36:04update: 2021-8-20 17:43:51categories: 前端tags:正则表达式top: false一、前言正则表达式很有魅力,熟练使用正则表达式会让开发更高效,更优雅,同时一些开发工具在搜索和替换时也支持正则表达式,如idea, vscode等等。在你学会正则之前,你只能看着那些正则大师们,写了一串外星文似的字符串,替代了你用一大篇幅的if else代码来做一些数据校验这篇文章.

2021-09-14 09:33:22 301

原创 圣杯布局和双飞翼布局

一、前言圣杯布局和双飞翼布局这道面试题我看过很多次了,每一次都以为自己看明白了, 结果一段时间不看还是忘记了,可能是我经历的面试层次太低,没有考到吧。。再就是平时开发中一般没有这种优化要求,用的比较少,今天就再次好好看看并总结如下:二、由来这部分摘自知乎CSS 圣杯布局和双飞翼布局的理解与思考圣杯布局来源于文章In Search of the Holy Grail,而双飞翼布局来源于淘宝UED。虽然两者的实现方法略有差异,不过都遵循了以下要点:两侧宽度固定,中间宽度自适应中间部分在DOM结

2021-09-14 09:32:17 81

原创 深入理解跨域及解决方案

一、引言跨域这件事可能是个老生常谈的问题,不光是面试中会高频问道,实际开发中也会经常遇到。今天就来好好探讨一下这个 “万恶” 的跨域吧。为什么我的万恶要加上引号呢,因为并不是完全是坏处,正所谓存在即合理,它的存在必然有它的用处。二、跨域2.1 跨域是什么谈到跨域,我理解的是一种WEB规范,一种标准,个人认为应该叫做跨源,后面会解释因为啥而最常遇到的便是浏览器跨域,因为浏览器在开发时候遵循了同源策略这种WEB规范,所以浏览器会存在跨域。最常见的跨域是主机或者端口不同,也就是你本地启动项目,但

2021-09-14 09:30:53 145

原创 原生canvas实现验证码

canvas实现前端验证码功能思路:循环生成随机六位验证码绘制canvas背景绘制干扰点绘制干扰线代码:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>canvas</title> <style> * { margin: 0; padding: 0; } canvas { dis

2021-08-17 11:03:55 122

原创 标准盒模型、IE盒模型以及box-sizing

一、前言实现一个很常规的功能, 鼠标停留出现3个像素的上边框,然而鼠标停留后出现了抖动,审查元素后发现是三个像素撑起了这个元素, 将其余元素向下挤, 才出现了这个抖动,一个比较常用的解决办法是先给元素一个3像素transparent背景的上边框,鼠标停留在将背景色改为其他颜色。这样就不会撑大元素后来又想起来有个box-sizing, 好像也可以做到,于是尝试了一下确实可以,看了一下mdn文档中对于box-sizing的描述, 做一个记录二、正文CSS 中的 box-sizing 属性定义了 use

2021-08-12 16:48:33 437

原创 vue导出多页PDF截断问题

一、前言个人网站上线了,欢迎大家访问 苏浩的个人博客使用的第三方:html2canvas 和 jspdf为了一劳永逸(更好的偷懒),做了一个简历修改的页面,将简历信息保存到数据库同时使用html2canvas 和 jspdf导出PDF,但是在导出PDF时却发现文本内容在分页部分被直接截断,经过查阅资料没找到匹配的结果,于是就自己想办法解决吧。二、正文首先是导出PDF的工具方法,直接修改Vue的原型方便调用Vue.prototype.getPdf = function(id, title) {

2021-07-10 21:32:33 5745 17

原创 计算机网络学习导图

一、前言本文将主要总结计算机网络七层参考模型各层学习导图,方便自己学习总结,同时如果能帮助到其他人那是更好。在学习计算机网络时,曾花了大量时间学习计算机网络的物理层以及数据链路层,如果时为了深入学习原理以及考研,那是非常有必要的,如果是为了工作(前后端开发),那我认为学习的重点应该是TCP/IP四层协议栈中的各种应用层协议写这篇文章的时候我也只是学习了物理层以及数据链路层,我也会随着学习过程...

2021-06-22 22:58:13 231

原创 DNS解析过程

一、前言最近准备写一个系列文章《在浏览器输入URL按下回车到显示网页经历了什么》,本文是系列文章的第一篇,也就是输入地址后第一步进行的操作,DNS解析,将域名解析成IP地址,进而通过TCP/IP建立链接完成浏览器和服务器通信过程本篇文章主要参考以下文章 + 自己的理解DNS解析的过程是什么,求详细的?域名系统 - 百度百科DNS原理总结及其解析过程详解二、DNS2.1 DNS是干什么...

2021-06-18 15:43:03 143

原创 JavaScript事件流

一、前言javascript中的事件流清楚吗,可以简单描述一下过程吗事件委托是什么,原理又是什么?果然一面试脑子就发懵,事件流很久之前看过,后来忘了包括vue中有些指令也有.stop等修饰符,其原理也都是js事件流的执行过程二、JavaScript中的事件流首先了解一下一个基本概念,也是很容易忽视的一个点,面试官可能会从这个问题引出事件流,面试官:“JS有哪些事件类型”答案是:...

2021-06-08 23:03:05 123

原创 关于javascript中的事件循环机制

一、 前言没话说还是要整个前言,不然队形就乱了。好吧,本文就根据自己看了两天的事件循环机制以及宏任务微任务进行深入浅出的讲解本文会由浅入深,以一个小白的角度理解事件循环机制这个js中高级面试中常考的问题二、什么是事件循环机制由于是在面试中被问到这个问题,而我确实之前没有看过,于是在学习看文档包括我在整理这篇博客的时候都在想,如何简要的描述这个过程比较麻烦的概念我觉得可能可以这样说(自己...

2021-06-08 23:01:42 97

原创 vue双向绑定原理

一、前言老规矩, 每一篇文章都要加个前言,今天分享一篇文章,vue双向绑定原理,之前总觉得源码,原理这些东西离我有些远,现在发现并不是,面试中这个问题问的非常频繁,在北京面试,大概5家公司面试,有三家都会问这个问题,不想每次都说不行。首先附一张图大多数文章都是从这个流程开始讲实现,然而我的脑回路和他们不太一样,我觉得这个问题不应该这么思考既然是双向绑定,那就应该从概念出发,vue是一个MV...

2021-06-08 23:01:32 108

原创 [1,2,3].map(parseInt)输出结果是什么

一、前言面试题:[1,2,3].map(parseInt)输出结果是什么二、两个方法由本题引申出两个js方法的细节,分别是数组map方法和parseInt方法,两个熟悉到不能在熟悉的方法,放在一起却翻了船1. map函数说明:map方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新...

2021-06-08 17:22:29 2418

原创 关于vue中的侦听器watch

1. 前言之前面试遇到过一个问题:面试官:vue侦听器watch的deep属性了解过吗我: 没用过面试官:好吧,那下一题日常开发确实没用过这个,没办法,一般来说我会的都是项目中用到过的,没用过的不太会单独了解,哎,vue入门太快也不好,很多点容易忽视,今天就研究一下watch中两个我不常用的属性,deep 和 immediate二、watch三个属性通过看api得知watch有三...

2021-06-08 17:21:39 104

原创 JavaScript中的this指向问题

一、前言深入学习的过程是 快乐 的!!!面试问到了箭头函数和普通函数的区别,去阮一峰ES6中看相关资料,发现主要还是指出 this 的指向问题,于是去深入理解this,相关文章又提出了执行上下文,调用栈等概念,顺着这个线索学下去发现盲区越来越多。。本文主要介绍JavaScript中 this 关键字,原文地址:js 五种绑定彻底弄懂this,默认绑定、隐式绑定、显式绑定、new绑定、箭头函数...

2021-06-08 17:19:16 85

原创 计算机网络-OSI七层模型

一、什么是OSI模型OSI 模型全称为开放式通信系统互连参考模型,是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。 OSI 将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI 的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是...

2021-06-08 17:19:05 1247

原创 JavaScript中箭头函数和普通函数的区别

一、前言我写的基本所有文章都是面试题引发的,这篇也不例外哈哈关于ES6中的箭头函数相信很多人在项目中都用过,但是确实没有深入研究过和普通函数有什么区别,被面试毒打过的我慢慢养成了喜欢深究的习惯,然而不在像在学校一样,“凡事多问几个为什么”,现在变成了,“凡是多查为什么”对JavaScript的了解越深入,越发现这门语言的魅力二、 箭头函数箭头函数(Arrow Function),最早...

2021-06-08 17:11:16 128

原创 日期中的GMT和UTC

一、前言:最近在看http,在http请求头和响应头有几个值是GMT时间格式,如last-modified, if-modified-since, expire等等,包括cookie中的expire属性也是GMT格式的时间,于是查阅资料了解了一下二、GMT和UTC1. GMTGMT(Greenwich Mean Time), 格林威治平时(也称格林威治时间)。它规定太阳每天经过位于英国...

2021-06-08 17:10:00 545

原创 JavaScript变量提升

1. 变量提升的概念变量提升简单来说就是把我们所写的类似于var a = 123这样的代码,声明提升到它所在作用域的顶端去执行,到我们代码所在的位置来赋值。注意一定是所载作用域的顶端, 如果提升的代码位于函数中, 则将变量和函数提升到函数的第一行, 代码块以及其他环境下同理2. 变量的提升使用var 声明的变量会被提前到所有代码执行之前console.log(x)var x = 1...

2021-06-08 10:04:31 74

原创 EasyCode模板分享

一、前言:最近接了一些学生的毕业设计, 大多数都是要求前后端分离。后台大多数都是java+springboot, 业务也都是对表的增删改查, 最多也就是连表查询, 代码也都千篇一律的CRUD, 我都快成为CV选手了。懒人总是想办法偷懒, 于是考虑自动生成代码, 以前用过mybatis-generator这个逆向工程, 能生成实体,dao层和xml文件, 用起来也比较简单, maven安装一个依赖...

2021-06-08 10:03:37 1033 1

原创 由304引发的命案

一、引言前两天面试一个问题,“对HTTP 304 状态码有了解吗”,确实经常看到,却对其中原理不是很了解, 因此特意翻阅相关资料,整理如下。由于目前对HTTP没有太深入的了解,此文章只从较浅的层面分析http缓存问题参考以下文章:彻底理解浏览器的缓存机制(http缓存机制)HTTP 强制缓存和协商缓存二、HTTP缓存机制浏览器只是遵循http协议的一个载体,与其说是浏览器的缓存机制,...

2021-06-08 10:03:26 71

原创 深入理解MVC架构

一、前言面试题刷到MVC和MVVM,MVC听说过,想总结一下却发现知道的只是皮毛,因此找了几篇文章深入理解一下MVC二、对MVC的误解引用知乎中的一段话MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性、可移植性,代码的可重用性。在东方电子实习就发现了...

2021-04-29 17:32:46 453

原创 为什么要学jwt,能解决什么问题

一句话:前后端交互过程中使用的token就是通过jwt生成的一、JWT能做什么授权这是jwt最常用的一个功能, 也就是用户登录成功以后给用户颁发一个token(令牌),使用这个token令牌可以访问后台的接口,【单点登录广泛使用了jwt】加密通过jwt可以对参数进行签名, 后端可以通过设置拦截器验证参数的签名, 如果验证通过才真正进入后台进行处理二、为什么选择jwt,sess...

2021-04-16 23:09:22 1711

原创 vue项目打包上线优化

目录一、前言二、着手点1. 图片和favicon.ico进行压缩2. 相关依赖转用CDN3. 使用gzip压缩三、附件(vue.config.js全文件)一、前言写过几个vue的案例也好,项目也好都没有真正上线, 就连公司的项目都是直接打包给后台统一部署, 因此打包相关经验比较少, 大学一直在做的一个个人博客在部署到阿里服务器以后访问一直都很慢(学生机带宽只有1M), 之前听别人说过可能是DNS劫持, 仔细研究发现其实并没有, 在控制台能看到一直在请求各种文件, 图片, js, css, 图标等等,

2020-12-15 22:27:54 420 2

原创 JavaScript对变量提升的简单理解

1. 变量提升的概念变量提升简单来说就是把我们所写的类似于var a = 123;这样的代码,声明提升到它所在作用域的顶端去执行,到我们代码所在的位置来赋值。2. 变量的提升使用var 声明的变量会被提前到所有代码执行之前console.log(x)var x = 123;上面的代码执行顺序应该是这样var x;console.log(x);x = 123;// 因此打印的内容是undefined,因为x声明了, 但是没有赋值 3. 函数的提升使用函数声明创建的函数会被提前到所

2020-07-24 11:49:05 187

原创 EasyCode自定义模板分享

一、EasyCode模板分享废话不多说, EasyCode开发神器,可能赶不上mybatis-generator, 但是感觉很顺手使用方法,File --> Settings --> Other Settings --> EasyCode – > Template Settings可以在这里面加入自己的模板,个人开发习惯控制层统一返回Response, 分享一下这个类,个人习惯, 可能不是特别规范有个问题需要注意一下, 关于这个code, 我是为了统一修改, 因此配置在ap

2020-06-03 21:00:52 17407 27

原创 JavaScript函数零散知识点

函数声明的三种方式var fun = new Function("return 1+2");console.log(fun()); // 输出3// 第二种方式 (函数声明)function fun2() { return 2 + 3;}console.log(fun2());// 输出5// 第三种函数 (表达式方式声明函数)var fun3 = function(){ return 4 + 5;}console.log(fun3()); // 输出9函数的实参

2020-05-29 11:50:15 159

原创 mysql链接数据库失败, 提示bad handleshake

情景复原: 某电脑昨天还能正常链接数据库, 今天就提示链接不上, 提示bad handleshake错误 原因是服务器端口(3306)被占用 借机学习window下查看端口占用情况以及杀死进程的常用命令分析:1. 用navicat链接, 提示Access Denied, 按理来说一般是密码错误, 可密码是没有问题的, 于是排除2. 怀疑是不是mysq...

2019-09-06 16:21:40 2137

原创 springAOP拦截自定义注解失效

前言:在使用SpringAOP思想进行日志处理的时候遇到了一个问题,SpringAOP配置切点比较麻烦,而且通配拦截方法,对于不需要做日志的方法就多余了,于是使用自定义注解方式,在需要拦截做日志的部分加上自定义注解即可,于是顺着这个思路开始做环境:SpringMVC+Spring+Mybatis【测试环境,就没配置Mybatis】Maven管理工具具体配置:Spring...

2019-08-08 10:24:38 2037

原创 双JDK,系统默认jdk切换错误

电脑安装双jdk,第一次安装的是jdk1.7,后来配置maven私服,又装了jdk1.8,手动修改了JAVA_HOME切换到jdk1.8的路径,Path中引用的是%JAVA_HOME%,因此没修改Path本来以为一切ok,通过java -version命令查看java版本,发现还是jdk1.7。。。以为是没有保存,于是重新编辑环境变量,还是没问题。。。重启电脑,还是1.7。。。...

2019-07-26 10:48:58 146

原创 解决idea打开以前项目,项目结构背景为灰色的问题

问题描述:今天突然想给以前写的东西加一个功能,于是用idea打开以往项目,准备开始开发,却发现打开的项目结构背景都是灰色的.然后所有的java文件从以前的大写的C变成了一个文件,左下角有一个类似时间的标志,也有人说这是J的标志,但是奇怪的是,项目可以运行,也可以更改,但是重新想重新配置springboot的运行模板却不行,想到可能是Modules出错网上提供思路先说一下网上提供的思路,...

2019-06-06 08:24:37 4872

原创 Intellij IDEA使用@Autowired注解,出现could not autowire错误,解决方案

问题在使用idea编写Spring项目时,经常会使用@Autowired这个注解,实现将Bean自动注入但是有时候会提示Could Not Autowired ,No Beans of ....【总之提示你无法自动装配】效果如下此时分两种情况第一种 : 确实你项目出错了,检查一下spring中这个bean,如果有错则改正这个错,更新一下项目,通常情况下,如果这个Bea...

2019-04-05 09:37:41 32135 2

空空如也

空空如也

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

TA关注的人

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