<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[rambler_designer]]></title><description><![CDATA[个人网站最近上线了，欢迎大家访问 http://www.suhaoblog.cn]]></description><link>https://blog.youkuaiyun.com/rambler_designer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; rambler_designer]]></copyright><item><title><![CDATA[linux上搭建svn多仓库环境]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/125917055</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/125917055</guid><author>rambler_designer</author><pubDate>Thu, 21 Jul 2022 17:20:30 +0800</pubDate><description><![CDATA[有条件的还是建议用GIT，如果我带团队，也一定会主推GIT以下是我认为svn无法取代git的优点SVNGITGITSVN。]]></description><category></category></item><item><title><![CDATA[svn多仓库权限控制]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/125917004</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/125917004</guid><author>rambler_designer</author><pubDate>Thu, 21 Jul 2022 17:19:49 +0800</pubDate><description><![CDATA[由于没有担任过项目经理，自己玩git和svn也就是单机，对权限控制这块是我自己的理解，大家斟酌是否适用自己的项目，在开发中应该由项目经理在trunk主干中建立branches/dev分支，开发人员就在这个分支中进行开发，开发结束后由项目经理推送到测试分支，测试人员在测试分支中进行测试权限测试过没问题，设计是否合理日后进行实践。...]]></description><category></category></item><item><title><![CDATA[Diff算法实现之Snabbdom]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/121125663</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/121125663</guid><author>rambler_designer</author><pubDate>Wed, 03 Nov 2021 17:08:34 +0800</pubDate><description><![CDATA[一、前言
闲着没事逛B站，发现了尚硅谷推出的关于Diff的课程，正好面试种也常问到，就学习了一下。这个课程主要围绕Snabbdom这个库，贴一下视频地址【Vue源码解析之虚拟DOM和diff算法】
这篇文章我会根据视频结合自己的理解对Diff过程进行讲解
关于代码还是建议看Snabbdom库typescript版本的源码，地址

首先要明确，Diff过程就是对新旧两个虚拟节点（VNode）进行比较，从而最小代价对DOM进行修补（patch）和更新

二、概述
1. 概念

上树：在全文和流程图中都表示将虚拟]]></description><category></category></item><item><title><![CDATA[vue+render实现el-table多表头]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/120924516</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/120924516</guid><author>rambler_designer</author><pubDate>Sat, 23 Oct 2021 18:49:27 +0800</pubDate><description><![CDATA[一、前言

又好久没更新文章了。。补一篇，主要分享封装多表头表格和render函数实现多表头表格

在公司维护低代码平台，有个需求需要通过拖拽配置一个多表头的表格（element的el-table），但是发现网上好像没什么资料，特别是平台是通过render函数实现的，对这个还不是很熟悉，摸索着写出来了，分享一下

二、Render函数代码

首先说明一下，用render函数纯粹是为了拖拽组件以及配置字段后之后可以即时预览，真正开发还是使用公用的表格组件

这部分代码是公用的，多个组件都用这一个，我稍微改了改]]></description><category></category></item><item><title><![CDATA[vue组件间通信方式（全）]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/120280804</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/120280804</guid><author>rambler_designer</author><pubDate>Tue, 14 Sep 2021 09:38:20 +0800</pubDate><description><![CDATA[title: VUE组件间通信方式总结
typora-copy-images-to: …/…/article-images
date: 2021-09-09 13:13:25
update:
categories: 前端
tags:

事件总线
vuex
top: true


一、面试题
不用多说，参加过前端面试的小伙伴应该都遇到过，很经典的面试题。下面这些组件间的通信方式不但要会代码实现，还要知道每种方式的优缺点以及适用场景，学会灵活运用。
听别人说过一句话，原文忘记了，只记得大概是说：架构师在技术选.]]></description><category></category></item><item><title><![CDATA[正则表达式详解]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/120280676</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/120280676</guid><author>rambler_designer</author><pubDate>Tue, 14 Sep 2021 09:33:22 +0800</pubDate><description><![CDATA[title: 正则表达式语法详解
date: 2021-08-20 17:36:04
update: 2021-8-20 17:43:51
categories: 前端
tags:

正则表达式
top: false


一、前言
正则表达式很有魅力，熟练使用正则表达式会让开发更高效，更优雅，同时一些开发工具在搜索和替换时也支持正则表达式，如idea， vscode等等。
在你学会正则之前，你只能看着那些正则大师们，写了一串外星文似的字符串，替代了你用一大篇幅的if else代码来做一些数据校验
这篇文章.]]></description><category></category></item><item><title><![CDATA[圣杯布局和双飞翼布局]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/120280646</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/120280646</guid><author>rambler_designer</author><pubDate>Tue, 14 Sep 2021 09:32:17 +0800</pubDate><description><![CDATA[一、前言
圣杯布局和双飞翼布局这道面试题我看过很多次了，每一次都以为自己看明白了， 结果一段时间不看还是忘记了，可能是我经历的面试层次太低，没有考到吧。。再就是平时开发中一般没有这种优化要求，用的比较少，今天就再次好好看看并总结如下：
二、由来

这部分摘自知乎CSS 圣杯布局和双飞翼布局的理解与思考

圣杯布局来源于文章In Search of the Holy Grail，而双飞翼布局来源于淘宝UED。虽然两者的实现方法略有差异，不过都遵循了以下要点：

两侧宽度固定，中间宽度自适应
中间部分在DOM结]]></description><category></category></item><item><title><![CDATA[深入理解跨域及解决方案]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/120280590</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/120280590</guid><author>rambler_designer</author><pubDate>Tue, 14 Sep 2021 09:30:53 +0800</pubDate><description><![CDATA[一、引言
跨域这件事可能是个老生常谈的问题，不光是面试中会高频问道，实际开发中也会经常遇到。今天就来好好探讨一下这个 “万恶” 的跨域吧。
为什么我的万恶要加上引号呢，因为并不是完全是坏处，正所谓存在即合理，它的存在必然有它的用处。
二、跨域
2.1 跨域是什么

谈到跨域，我理解的是一种WEB规范，一种标准，个人认为应该叫做跨源，后面会解释因为啥

而最常遇到的便是浏览器跨域，因为浏览器在开发时候遵循了同源策略这种WEB规范，所以浏览器会存在跨域。
最常见的跨域是主机或者端口不同，也就是你本地启动项目，但]]></description><category></category></item><item><title><![CDATA[原生canvas实现验证码]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/119752014</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/119752014</guid><author>rambler_designer</author><pubDate>Tue, 17 Aug 2021 11:03:55 +0800</pubDate><description><![CDATA[canvas实现前端验证码功能
思路：

循环生成随机六位验证码
绘制canvas背景
绘制干扰点
绘制干扰线

代码：
&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta charset="utf-8"&gt;
		&lt;title&gt;canvas&lt;/title&gt;
		&lt;style&gt;
			* {
				margin: 0;
				padding: 0;
			}

			canvas {
				dis]]></description><category></category></item><item><title><![CDATA[标准盒模型、IE盒模型以及box-sizing]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/119648181</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/119648181</guid><author>rambler_designer</author><pubDate>Thu, 12 Aug 2021 16:48:33 +0800</pubDate><description><![CDATA[一、前言
实现一个很常规的功能， 鼠标停留出现3个像素的上边框，然而鼠标停留后出现了抖动，审查元素后发现是三个像素撑起了这个元素， 将其余元素向下挤， 才出现了这个抖动，一个比较常用的解决办法是先给元素一个3像素transparent背景的上边框，鼠标停留在将背景色改为其他颜色。这样就不会撑大元素
后来又想起来有个box-sizing， 好像也可以做到，于是尝试了一下确实可以，看了一下mdn文档中对于box-sizing的描述, 做一个记录
二、正文

CSS 中的 box-sizing 属性定义了 use]]></description><category></category></item><item><title><![CDATA[vue导出多页PDF截断问题]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118641104</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118641104</guid><author>rambler_designer</author><pubDate>Sat, 10 Jul 2021 21:32:33 +0800</pubDate><description><![CDATA[一、前言

个人网站上线了，欢迎大家访问 苏浩的个人博客

使用的第三方：html2canvas 和 jspdf
为了一劳永逸（更好的偷懒），做了一个简历修改的页面，将简历信息保存到数据库同时使用html2canvas 和 jspdf导出PDF，但是在导出PDF时却发现文本内容在分页部分被直接截断，经过查阅资料没找到匹配的结果，于是就自己想办法解决吧。
二、正文
首先是导出PDF的工具方法，直接修改Vue的原型方便调用
Vue.prototype.getPdf = function(id, title) {]]></description><category></category></item><item><title><![CDATA[计算机网络学习导图]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365588</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365588</guid><author>rambler_designer</author><pubDate>Tue, 22 Jun 2021 22:58:13 +0800</pubDate><description><![CDATA[一、前言
本文将主要总结计算机网络七层参考模型各层学习导图，方便自己学习总结，同时如果能帮助到其他人那是更好。
在学习计算机网络时，曾花了大量时间学习计算机网络的物理层以及数据链路层，如果时为了深入学习原理以及考研，那是非常有必要的，如果是为了工作(前后端开发)，那我认为学习的重点应该是TCP/IP四层协议栈中的各种应用层协议
写这篇文章的时候我也只是学习了物理层以及数据链路层，我也会随着学习过程...]]></description><category></category></item><item><title><![CDATA[DNS解析过程]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365585</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365585</guid><author>rambler_designer</author><pubDate>Fri, 18 Jun 2021 15:43:03 +0800</pubDate><description><![CDATA[一、前言
最近准备写一个系列文章《在浏览器输入URL按下回车到显示网页经历了什么》，本文是系列文章的第一篇，也就是输入地址后第一步进行的操作，DNS解析，将域名解析成IP地址，进而通过TCP/IP建立链接完成浏览器和服务器通信过程
本篇文章主要参考以下文章 + 自己的理解
DNS解析的过程是什么，求详细的？
域名系统 - 百度百科
DNS原理总结及其解析过程详解
二、DNS
2.1 DNS是干什么...]]></description><category></category></item><item><title><![CDATA[JavaScript事件流]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365573</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365573</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 23:03:05 +0800</pubDate><description><![CDATA[一、前言

javascript中的事件流清楚吗，可以简单描述一下过程吗
事件委托是什么，原理又是什么？

果然一面试脑子就发懵，事件流很久之前看过，后来忘了
包括vue中有些指令也有.stop等修饰符，其原理也都是js事件流的执行过程
二、JavaScript中的事件流
首先了解一下一个基本概念，也是很容易忽视的一个点，面试官可能会从这个问题引出事件流，面试官：“JS有哪些事件类型”

答案是:...]]></description><category></category></item><item><title><![CDATA[关于javascript中的事件循环机制]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365570</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365570</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 23:01:42 +0800</pubDate><description><![CDATA[一、 前言
没话说还是要整个前言，不然队形就乱了。
好吧，本文就根据自己看了两天的事件循环机制以及宏任务微任务进行深入浅出的讲解
本文会由浅入深，以一个小白的角度理解事件循环机制这个js中高级面试中常考的问题
二、什么是事件循环机制
由于是在面试中被问到这个问题，而我确实之前没有看过，于是在学习看文档包括我在整理这篇博客的时候都在想，如何简要的描述这个过程比较麻烦的概念
我觉得可能可以这样说(自己...]]></description><category></category></item><item><title><![CDATA[vue双向绑定原理]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365563</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365563</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 23:01:32 +0800</pubDate><description><![CDATA[一、前言
老规矩， 每一篇文章都要加个前言，今天分享一篇文章，vue双向绑定原理，之前总觉得源码，原理这些东西离我有些远，现在发现并不是，面试中这个问题问的非常频繁，在北京面试，大概5家公司面试，有三家都会问这个问题，不想每次都说不行。
首先附一张图
大多数文章都是从这个流程开始讲实现，然而我的脑回路和他们不太一样，我觉得这个问题不应该这么思考
既然是双向绑定，那就应该从概念出发，vue是一个MV...]]></description><category></category></item><item><title><![CDATA[[1,2,3].map(parseInt)输出结果是什么]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365562</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365562</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 17:22:29 +0800</pubDate><description><![CDATA[一、前言

面试题：[1,2,3].map(parseInt)输出结果是什么

二、两个方法
由本题引申出两个js方法的细节,分别是数组map方法和parseInt方法，两个熟悉到不能在熟悉的方法，放在一起却翻了船
1. map
函数说明：
map方法会给原数组中的每个元素都按顺序调用一次  callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新...]]></description><category></category></item><item><title><![CDATA[关于vue中的侦听器watch]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365579</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365579</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 17:21:39 +0800</pubDate><description><![CDATA[1. 前言

之前面试遇到过一个问题：
面试官：vue侦听器watch的deep属性了解过吗
我： 没用过
面试官：好吧，那下一题

日常开发确实没用过这个，没办法，一般来说我会的都是项目中用到过的，没用过的不太会单独了解，哎，vue入门太快也不好，很多点容易忽视，今天就研究一下watch中两个我不常用的属性，deep 和 immediate
二、watch三个属性
通过看api得知watch有三...]]></description><category></category></item><item><title><![CDATA[JavaScript中的this指向问题]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365581</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365581</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 17:19:16 +0800</pubDate><description><![CDATA[一、前言
深入学习的过程是 快乐 的！！！
面试问到了箭头函数和普通函数的区别，去阮一峰ES6中看相关资料，发现主要还是指出 this 的指向问题，于是去深入理解this，相关文章又提出了执行上下文，调用栈等概念，顺着这个线索学下去发现盲区越来越多。。
本文主要介绍JavaScript中 this 关键字，原文地址：js 五种绑定彻底弄懂this，默认绑定、隐式绑定、显式绑定、new绑定、箭头函数...]]></description><category></category></item><item><title><![CDATA[计算机网络-OSI七层模型]]></title><link>https://blog.youkuaiyun.com/rambler_designer/article/details/118365613</link><guid>https://blog.youkuaiyun.com/rambler_designer/article/details/118365613</guid><author>rambler_designer</author><pubDate>Tue, 08 Jun 2021 17:19:05 +0800</pubDate><description><![CDATA[一、什么是OSI模型
OSI 模型全称为开放式通信系统互连参考模型，是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。 OSI 将计算机网络体系结构划分为七层，每一层实现各自的功能和协议，并完成与相邻层的接口通信。OSI 的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力，它通过接口提供给更高一层。各层所提供的服务与这些服务是...]]></description><category></category></item></channel></rss>