<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[赵天铭的博客]]></title><description><![CDATA[成功人士习惯去做失败者不爱做的事。他们当然也不喜欢干这些事，但他们让这种不喜欢服从于对自己目标的追求。]]></description><link>https://blog.youkuaiyun.com/guzhao593</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; guzhao593]]></copyright><item><title><![CDATA[Git Bash的常用终端命令（不包括Git开头）]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/103394554</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/103394554</guid><author>guzhao593</author><pubDate>Wed, 04 Dec 2019 21:11:08 +0800</pubDate><description><![CDATA[文章目录cd：进入目录ls：罗列当前目录下的文件和文件夹pwd：显示当前所在目录mkdir：创建文件夹touch：创建文件cp：拷贝文件mv：移动或重命名文件或文件夹rm：删除文件或文件夹cat：查看文件内容echo：将内容写入文件clear：清空当前窗口的记录reset：重置bash命令窗口信息exit：退出bash并关闭窗口
在Git Bash中

~代表当前用户目录
/代表根目录
.表示当前...]]></description><category></category></item><item><title><![CDATA[如何不通过iconfont项目向已有字体图标中添加新的字体图标]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/103314628</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/103314628</guid><author>guzhao593</author><pubDate>Fri, 29 Nov 2019 17:27:24 +0800</pubDate><description><![CDATA[前言
今天接到一个需求，要往项目中添加一个字体图标。按照以往的惯例，就是在iconfont网站的我的项目添加需要的字体图标就行了。但这个需求是个临时需求，不想用这种方式。
于是，就想直接在现有的字体图标中添加。
解决方案
第一步
在iconfont网站找到你需要的字体图标，将其添加到购物车中。然后，打开你的购物车，选择下载代码

第二步
解压下载的文件包，如图

第三步
将其中以eot/svg/t...]]></description><category></category></item><item><title><![CDATA[MutationObserve的使用和应用]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/103216088</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/103216088</guid><author>guzhao593</author><pubDate>Sat, 23 Nov 2019 16:58:06 +0800</pubDate><description><![CDATA[MutationObserve的使用和应用
前言
最近接到一个项目需求，就是把另一个项目嵌入到当前项目中。要求很简单，让人看不出这是嵌入过来的。
本来觉得这也没什么，因为以前也做过一次。
方案无非就是通过iframe嵌入，通过postMessage进行通信（ps:两个项目都是我们自己的，可以修改代码）。
其他的一切都ok，就有个一个问题困扰了。
我们当前的项目是一个典型的圣杯布局，头部和底部都要显...]]></description><category></category></item><item><title><![CDATA[Git学习--09--如何删除指定的commit]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/102538294</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/102538294</guid><author>guzhao593</author><pubDate>Sun, 13 Oct 2019 21:27:44 +0800</pubDate><description><![CDATA[场景
最近不小心将一些暂时不需要合并的commit给合并到dev分支了，需要在dev分支上删除这些不需要的分支。
解决方案
使用git revert命令
项目文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QWdNAIJT-1570973244922)(C:\Users\guzhao593\AppData\Roaming\Typora\typora-user-i...]]></description><category></category></item><item><title><![CDATA[Charles--01--安装和使用]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/101596385</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/101596385</guid><author>guzhao593</author><pubDate>Sat, 28 Sep 2019 10:26:55 +0800</pubDate><description><![CDATA[文章目录前言安装和破解安装破解使用连接1. 电脑端连接2.手机端连接问题如何捕获本地`localhost`数据产生原因解决方法
前言
Charles是一款代理服务器，通过过将自己设置成系统（电脑或者浏览器）的网络访问代理服务器，然后截取请求和请求结果达到分析抓包的目的。其功能与Fiddler非常相似，个人觉得Charles更简洁。
安装和破解
安装
进入官网下载地址：http://www.char...]]></description><category></category></item><item><title><![CDATA[JavaScript的执行机制]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/99884323</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/99884323</guid><author>guzhao593</author><pubDate>Tue, 20 Aug 2019 21:03:26 +0800</pubDate><description><![CDATA[JavaScript的执行机制
在理解JavaScript(以下简称js)的执行机制之前，先要理解几个概念：


js是单线程语言
为什么要将js设计为单线程，原因是js最初是专门为浏览器设计的。
可以想象一下，如果js是多线程的，那么当你对同一个dom进行不同操作时，浏览器会不知道如何执行。
比如，一个线程你要删除dom，另一个线程你要修改dom，同时给浏览器下达命令，这时浏览器该如何执行呢？
...]]></description><category></category></item><item><title><![CDATA[JavaScript数据类型的转换]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/99884157</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/99884157</guid><author>guzhao593</author><pubDate>Tue, 20 Aug 2019 21:01:31 +0800</pubDate><description><![CDATA[文章目录前言强制转换Number()String()Boolean()自动转换第一种情况，不同类型的数据互相运算。第二种情况，对非布尔值类型的数据求布尔值。第三种情况，对非数值类型的值使用一元运算符（即`+`和`-`）。自动转换为布尔值自动转换为字符串自动转换为数值
前言
关于JavaScript（以下简称js）的数据类型的转换，我们先来看以下几个例子。
例1：
const A = 1 + '1'...]]></description><category></category></item><item><title><![CDATA[前端如何实现文件下载功能]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/98470828</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/98470828</guid><author>guzhao593</author><pubDate>Sun, 04 Aug 2019 16:20:17 +0800</pubDate><description><![CDATA[文章目录前端如何实现文件下载功能结合后端实现两种实现方式第一种、直接下载服务器的静态资源第二种、前端传参，后端生成文件实现思路：优缺点优点缺点纯前端实现数据来源实现思路第一步、将数据生成对应得`data:URLs`或`blob:URL`生成`data:URLs`生成`BlobURLs`第二步、处理下载（或叫导出）方式优缺点优点缺点
前端如何实现文件下载功能
对于如何实现文件下载功能，根据实现的技术...]]></description><category></category></item><item><title><![CDATA[网站主题切换]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/97612443</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/97612443</guid><author>guzhao593</author><pubDate>Sun, 28 Jul 2019 11:08:46 +0800</pubDate><description><![CDATA[文章目录网站主题切换前言思路全部写在`style`属性中全部写在外部`css`文件中引用不同的`link`文件通过`class`命名空间的方式`webpack`插件：`webpack-theme-color-replacer`实现`webpack-theme-color-replacer`
网站主题切换
前言
关于网站主题的切换，其实也叫网站换肤。
记得以前博客流行的时代，换肤很受欢迎。也在那时候...]]></description><category></category></item><item><title><![CDATA[前端性能优化之Gzip]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/97498490</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/97498490</guid><author>guzhao593</author><pubDate>Sat, 27 Jul 2019 11:37:23 +0800</pubDate><description><![CDATA[性能优化之Gzip
什么是GZIP ？
gzip是GNUzip的缩写，它是一个GNU自由软件的文件压缩程序。它是Jean-loupGailly和MarkAdler一起开发的。
压缩原理
Gzip 压缩背后的原理，是在一个文本文件中找出一些重复出现的字符串、临时替换它们，从而使整个文件变小。
根据这个原理，文件中代码的重复率越高，那么压缩的效率就越高，使用 Gzip 的收益也就越大。反之亦然。
文件...]]></description><category></category></item><item><title><![CDATA[webpack进阶--02--多页面应用配置]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/96460056</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/96460056</guid><author>guzhao593</author><pubDate>Thu, 18 Jul 2019 21:59:53 +0800</pubDate><description><![CDATA[项目文件结构：
├─build
├     ├─webpack.base.js
├     ├─webpack.dev.js
├     └─webapck.prod.js
├─package.json
├
├─src
    └─views
          ├─admin
          ├     ├─index.js
          ├     └─index.html
    ...]]></description><category></category></item><item><title><![CDATA[webpack进阶--01--环境变量的设置]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/96459685</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/96459685</guid><author>guzhao593</author><pubDate>Thu, 18 Jul 2019 21:58:15 +0800</pubDate><description><![CDATA[环境变量的设置
在用webpack作为打包工具的项目中，环境变量共有三种：

node运行时的环境变量
webpack配置对象的环境变量
js运行时的环境变量

node运行时的环境变量
在node环境中，通过process.env可以获取node的全局环境信息
在windows系统中，可以通过执行以下命令设置：
set NODE_ENV=dev

在linux系统中，可以通过执行以下命令设置：
...]]></description><category></category></item><item><title><![CDATA[使用webpack打包的单页面项目如何设置favicon.icon文件]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/93972303</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/93972303</guid><author>guzhao593</author><pubDate>Fri, 28 Jun 2019 10:05:30 +0800</pubDate><description><![CDATA[上一篇文章：如何给网站设置favicon.ico图标，介绍了favicon.ico是什么，怎么配置，有哪几种方式。
但发现webpack打包的单页面项目却与普通项目不同，所以这篇文章介绍一下使用webpack打包的单页面项目如何设置favicon.icon文件
第一种方式：放在根目录的实现
首先，将favicon放在项目的根目录下
然后：
1、找到build下的webpack.dev.conf.j...]]></description><category></category></item><item><title><![CDATA[如何给网站设置favicon.ico图标]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/93972193</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/93972193</guid><author>guzhao593</author><pubDate>Fri, 28 Jun 2019 10:04:23 +0800</pubDate><description><![CDATA[favicon.ico是什么？
所谓favicon，即Favorites Icon的缩写，顾名思义，便是其可以让浏览器的收藏夹中除显示相应的标题外，还以图标的方式区别不同的网站。
favicon.ico是一个网站必要的吗？
不是必要的，但是web服务器在网站加载时都会请求favicon.ico这个文件，如果不存在就会报404错误，并且会记录到错误日志中，所以最好的设置。
favicon.ico怎么...]]></description><category></category></item><item><title><![CDATA[前端项目发版后用户需要手动刷新页面获取的解决方案]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/93893787</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/93893787</guid><author>guzhao593</author><pubDate>Thu, 27 Jun 2019 17:44:20 +0800</pubDate><description><![CDATA[背景
我们的项目是后台管理系统，框架是Vue，构建工具是Webpack。
问题
每一次修改代码后打包发布到生产环境后，用户需要手动刷新才能获取到最新的代码。
原因
Webpack打包之后会根据文件内容生成一个hash值，然后再按照[name].[hash].js的格式生成文件名;
然后再根据文件的路由对应关系生成一个runtime.[hash].js的文件，这个文件会监控浏览器的路由变化去服务器加...]]></description><category></category></item><item><title><![CDATA[chrome中直接使用import]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/93353963</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/93353963</guid><author>guzhao593</author><pubDate>Sat, 22 Jun 2019 19:23:34 +0800</pubDate><description><![CDATA[现在我们在开发项目时都是基于构建工具（像webpack）上进行开发，所以在使用import时得心应手。
但今天在chrome中直接使用import时，发现不知道如何使用？

chrome中直接使用import
三个条件：


浏览器版本需要支持，浏览器的支持情况：



使用&lt;script type="module"&gt;


必须在服务器环境下才运行（可以通过全局下载npm包http-...]]></description><category></category></item><item><title><![CDATA[编译知识]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/90722863</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/90722863</guid><author>guzhao593</author><pubDate>Fri, 31 May 2019 21:00:45 +0800</pubDate><description><![CDATA[编译知识
翻译程序
翻译程序是一种程序，其输入是某种语言的一系列语句，而其输出则是另一种语言的一系列语句，二者在逻辑上是等价的。
编译程序
编译程序是一种程序。它把用高级语言写的源程序作为数据接收，经过翻译转换，产生面向机器的代码作为输出。这当中代码还可能要经过由汇编程序或装配程序作进一步加工，得出目标程序，交给计算机执行。
两者的区别
翻译程序是将一种语言转化为另一种语言
编译程序是将一种语言转...]]></description><category></category></item><item><title><![CDATA[Git学习--08--如何使用Git删除新增的文件？]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/89854246</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/89854246</guid><author>guzhao593</author><pubDate>Sun, 05 May 2019 20:11:52 +0800</pubDate><description><![CDATA[需求
今天提交代码时发现有一些新增的文件是不需要提交的，但又比较多，不想手工去删除。
解决方案
百度和实践了一波，总结有两个解决方案


使用git clean删除
git clean的作用就是清除未track的文件或文件夹， 主要有以下几个用法
git clean -n 

使用此命令将会显示将要删除的文件（注：但如果是新增的文件夹，则不会显示，包括这个文件夹下的文件也不会显示）
git cle...]]></description><category></category></item><item><title><![CDATA[Vue进阶--01--vm.$scopedSlots和vm.$slots的理解和基本使用]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/89219229</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/89219229</guid><author>guzhao593</author><pubDate>Thu, 11 Apr 2019 20:25:32 +0800</pubDate><description><![CDATA[官方定义
vm.$slots


类型：{[name: string]: ?Array&lt;VNode&gt;}


只读


详细：
用来访问被插槽分发的的内容。每个具名插槽有其相应的属性。default属性包括了所有没有被包含在具名插槽中的节点或v-slot:default的内容
在使用渲染函数书写一个组件时，访问vm.slots最有帮助。


vm.$scopedSlots


类型：{[...]]></description><category></category></item><item><title><![CDATA[语义化版本（SemVer）的范围]]></title><link>https://blog.youkuaiyun.com/guzhao593/article/details/88947533</link><guid>https://blog.youkuaiyun.com/guzhao593/article/details/88947533</guid><author>guzhao593</author><pubDate>Mon, 01 Apr 2019 14:32:50 +0800</pubDate><description><![CDATA[转自 http://www.u396.com/semver-range.html
在使用 Node.js 和 Bower 的时候，其中的 package.json 和 bower.json 都会有 dependencies、devDependencies 项，对于此前端开 发的童鞋应该会比较熟悉。这里面是运行时和开发时依赖库，其中依赖库对应的版本号有很多种写法，诸如：”~1.0.2“, “^1.0...]]></description><category></category></item></channel></rss>