<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[HCJS_Zee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HCJS_Zee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HCJS_Zee]]></copyright><item><title><![CDATA[git创建本地分支并提交到远程分支（记一次很简单的git实践）]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/102730351</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/102730351</guid><author>HCJS_Zee</author><pubDate>Thu, 24 Oct 2019 19:53:17 +0800</pubDate><description><![CDATA[首先创建本地文件存储从类git代码管理平台拉取的代码
git clone http://...
在当前文件中初始化git版本管理
git init
使用类VSCODE编辑工具打开项目，安装项目依赖npm包
npm install
并通过编辑工具的命令行（下同），对当前项目的分支进行查看，可以查看本地和线上分支
git branch
git branch -a
新建保护分支并切换分支至zee（原来的...]]></description><category></category></item><item><title><![CDATA[Vue回顾学习一（组件通信、数据方法，实例生命周期钩子）]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/98207633</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/98207633</guid><author>HCJS_Zee</author><pubDate>Fri, 02 Aug 2019 15:35:57 +0800</pubDate><description><![CDATA[组件建立以及组件通信：
Vue.component(‘todo-item’, {
props: [‘todo’],
template: ‘{{ todo.text }}’
});
var app = new Vue({
el: ‘app’,
data: {
groceryList: [{
id: 0, text: ‘蔬菜’
}, {
id: 1, text: ‘奶酪’
}, {
id: 2, te...]]></description><category></category></item><item><title><![CDATA[Echarts图表设置百分比显示以及图表内容合并问题]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/88747346</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/88747346</guid><author>HCJS_Zee</author><pubDate>Fri, 22 Mar 2019 18:01:14 +0800</pubDate><description><![CDATA[业务需求
需要开发一个动态tab用来切换Echarts图表的显示，tab项指定显示图表的展示数据。
实现思路
通过多个DIV标签承载Echarts图表。起初的思路是将多个DIV标签设置样式display:none:进行隐藏，在每次进行tab切换时，先改变DIV标签的样式让其显示，然后进行数据请求并绘制图表。
出现问题
本该按照百分比显示的Echarts图表只显示了很小的宽和高，当我打开控制台或者对...]]></description><category></category></item><item><title><![CDATA[VUE路由变更页面未更新问题]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/88721224</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/88721224</guid><author>HCJS_Zee</author><pubDate>Thu, 21 Mar 2019 17:41:32 +0800</pubDate><description><![CDATA[VUE路由变更页面未更新业务需求实现方案遇到的问题问题定位以及解决
业务需求
在做一个管理用户账户下APP的网站，在主页需要切换应用APP的ID，来显示不同APP对应的数据，对不同APP进行操作。
实现方案
由于切换APP对应的是整个页面的更新，考虑通过将APPID直接作为URL参数，切换时，变更URL地址后的APPID，对应页面数据通过URL参数进行请求。此时需要维护一个全局变量存储这个APPI...]]></description><category></category></item><item><title><![CDATA[通过业务场景理解跨域与请求（简单与非简单）]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/88354041</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/88354041</guid><author>HCJS_Zee</author><pubDate>Fri, 08 Mar 2019 16:35:45 +0800</pubDate><description><![CDATA[跨域问题业务场景中出现的问题问题的表现问题的定位什么是OPTIONS请求两种请求什么时候会出现OPTIONS请求回归问题本身解决问题总结
业务场景中出现的问题
近期我单独负责一个项目的前端工作，在网络方面是和后端分离开发，在前端发起网络请求就会存在跨域的问题。

tips：由于开发阶段前后端分离，所以会存在种种的跨域情况，为了便于开发联调所以才进行跨域处理

通常的解决方案是CORS（跨域资源共享...]]></description><category></category></item><item><title><![CDATA[HTML meta标签总结与属性使用介绍]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84310480</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84310480</guid><author>HCJS_Zee</author><pubDate>Tue, 20 Nov 2018 21:46:58 +0800</pubDate><description><![CDATA[简介
在查阅w3school中，第一句话中的“元数据”就让我开始了Google之旅。然后很顺利的在英文版的w3school找到了想要的结果。（中文w3school说的是元信息，Google和百度都没有相关的词条。但元数据在Google就有详细解释。所以这儿采用英文版W3school的解释。)
The &amp;amp;amp;amp;lt;meta&amp;amp;amp;amp;gt; tag provides metadata about the HTML...]]></description><category></category></item><item><title><![CDATA[CSS3 伪元素 ::before&::after]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84309331</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84309331</guid><author>HCJS_Zee</author><pubDate>Tue, 20 Nov 2018 20:33:19 +0800</pubDate><description><![CDATA[::before 和 ::after伪元素的说明


:before 和 :after将在内容元素的前后插入额外的元素；:before将会在内容之前“添加”一个元素而:after将会在内容后“添加”一个元素。在它们之中添加内容我们可以使用content属性。


:before 和 :after发布于CSS2.1, 在css3中修订后伪元素使用::,伪类使用:, 因而形式为:: before, :...]]></description><category></category></item><item><title><![CDATA[水平垂直居中方案]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84307577</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84307577</guid><author>HCJS_Zee</author><pubDate>Tue, 20 Nov 2018 18:22:15 +0800</pubDate><description><![CDATA[水平居中
内联元素
.center-text {
	text-align: center;
}

块级元素
.center-box {
	margin: 0 auto;
}

多块级元素
利用inline-block
如果一行中有两个或两个以上的块级元素，通过设置块级元素的显示类型为inline-block和父容器的text-align属性从而使多块级元素水平居中。
&amp;lt;div class=&quot;...]]></description><category></category></item><item><title><![CDATA[Vue2实践揭秘读书笔记(2)——webpack模板以及构建工具]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84108669</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84108669</guid><author>HCJS_Zee</author><pubDate>Thu, 15 Nov 2018 18:53:41 +0800</pubDate><description><![CDATA[Vue作为AngularJS和React的继承者和改良者，它不单单从编码的特色与开发框架本身的使用上进行大面积的改良与优化。它提供了整套简化开发、测试与部署的方案。
安装vue-cli
vue-cli是一个npm的安装包，我们希望它能在本机的任意目录下创建项目，那么就得将它安装到node.js的全局运行目录下：
npm i vue-cli -g
初始化项目：
命令
init           	...]]></description><category></category></item><item><title><![CDATA[Vue2实践揭秘读书笔记(1)——Vue概要]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84071226</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/84071226</guid><author>HCJS_Zee</author><pubDate>Thu, 15 Nov 2018 11:14:18 +0800</pubDate><description><![CDATA[
Vue.js与Angular2和React相比，Vue.js一开始就为我们铺平入门的道路，脚手架vue-cli。
因为它的存在，省去了手工配置开发环境、运行环境和测试环境的步骤，开发者可以直接步入Vue.js开发的殿堂。

在开始之前，先安装npm，然后输入vue-cli安装到全局环境
npm i vue-cli -g
然后，开始建立工程
vue init webpack-simple vue-...]]></description><category></category></item><item><title><![CDATA[双向数据绑定]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83866222</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83866222</guid><author>HCJS_Zee</author><pubDate>Thu, 08 Nov 2018 18:56:14 +0800</pubDate><description><![CDATA[Vue核心：

响应式的数据绑定
组件化
Vue三要素：
响应式：例如如何监听数据变化，其中的实现方法就是我们提到的双向绑定。
模版引擎：如何解析模版。
渲染：Vue如何将监听到的数据变化和解析后的HTML进行渲染。

可以实现双向绑定的方法有很多，KnockoutJS基于观察着模式（发布-订阅222222222222）的双向绑定，Ember基于数据模型的双向绑定，Angular基于脏检查的双向绑...]]></description><category></category></item><item><title><![CDATA[HTTP1.0->HTTP1.1->HTTP2.0的进阶]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83824126</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83824126</guid><author>HCJS_Zee</author><pubDate>Wed, 07 Nov 2018 14:58:58 +0800</pubDate><description><![CDATA[HTTP1.0 -&amp;gt; HTTP1.1

长连接：HTTP1.0需要使用keep-alive参数来告知服务器端要建立一个长连接，而HTTP1.1默认支持长连接。（TCP三次握手，有开销，可以维持一个长连接）
节约带宽：HTTP1.1支持只发送header信息（不带任何body信息），如果服务器认为客户端有权限请求服务器，则返回100，否则返回401。客户端接收100，才把请求body发送到服务...]]></description><category></category></item><item><title><![CDATA[JavaScript垃圾收集]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83791666</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83791666</guid><author>HCJS_Zee</author><pubDate>Tue, 06 Nov 2018 18:00:08 +0800</pubDate><description><![CDATA[JavaScript具有自动垃圾收集机制，执行环境会负责管理代码执行过程中使用的内存。而在C和C++之类的语言中，开发人员的一项基本任务就是手工跟踪内存的使用情况，这是造成许多问题的一个根源。这种垃圾收集机制的原理其实很简单：找出那些不再继续使用的变量，然后释放其占用的内存。为此，垃圾收集器会按照固定的时间间隔（或代码执行中预定的收集时间）周期性地执行这一操作。
垃圾收集器必须跟踪哪个变量有用哪个...]]></description><category></category></item><item><title><![CDATA[ES6&ES5实现观察者模式(发布订阅者模式)]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83419803</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83419803</guid><author>HCJS_Zee</author><pubDate>Fri, 26 Oct 2018 19:35:27 +0800</pubDate><description><![CDATA[ES6
class Observer{
	constructor(){
		this.handle = [];
	}
	addSubscribe(topic, fn) {
		this.handle.push({topic: topic, fn: fn});
		console.log(this.handle);
	}
	removeSubscribe(topic, fn) {
		let ind...]]></description><category></category></item><item><title><![CDATA[JavaScript数组去重]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83415255</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83415255</guid><author>HCJS_Zee</author><pubDate>Fri, 26 Oct 2018 15:02:29 +0800</pubDate><description><![CDATA[下面是用来创建随机数数组的函数（1-1000）
function createRandomArr(len){
	var arr = [];
	for(var i = 0; i &amp;lt; len; i++) {
		arr[i] = Math.floor(Math.random() * 1000) + 1;
	}
	return arr;
}

1、for循环（嵌套）+ 新数组
function s...]]></description><category></category></item><item><title><![CDATA[JavaScript合并两个有序数组]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83413143</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83413143</guid><author>HCJS_Zee</author><pubDate>Fri, 26 Oct 2018 12:31:51 +0800</pubDate><description><![CDATA[function mergeArray(arr1,arr2){
	var ind1=0; //标记arr1的对比元素的初始索引值
	var ind2=0; //标记arr2的对比元素的初始索引值
	var arr=[]; //作为输出的新数组
	while(ind1&amp;amp;amp;amp;amp;lt;arr1.length &amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp; ind2&amp;amp;amp;amp;amp;lt;arr2]]></description><category></category></item><item><title><![CDATA[url访问网站的网络传输全过程]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83385486</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83385486</guid><author>HCJS_Zee</author><pubDate>Thu, 25 Oct 2018 20:05:12 +0800</pubDate><description><![CDATA[整个过程基本分为下面几个部分：
1、域名解析成IP地址；
2、与目的主机进行TCP连接（三次连接）；
3、发送与收取数据；
4、与目的主机断开TCP连接（四次挥手）；
域名解析过程如下
1、浏览器向本机DNS模块发出DNS请求，DNS模块生成相关的DNS报文。
2、DNS模块将生成的DNS报文传递给传输层的UDP协议单元。
3、UDP协议单元将该数据封装成UDP数据报，传递给网络层的IP协议单元。...]]></description><category></category></item><item><title><![CDATA[JavaScript字符串相关题目]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83349936</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83349936</guid><author>HCJS_Zee</author><pubDate>Wed, 24 Oct 2018 20:15:46 +0800</pubDate><description><![CDATA[正则匹配-驼峰转换
function test(str) {
	var re = /-(\w)/g;
	return str.replace(re, function($0, $1){
		return $1.toUpperCase();
	});
}
test(str);
//border-bottom-color -&amp;amp;gt; borderBottomColor

获取字符串中出现最多的字符和及...]]></description><category></category></item><item><title><![CDATA[原型规则]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83344375</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83344375</guid><author>HCJS_Zee</author><pubDate>Wed, 24 Oct 2018 15:12:01 +0800</pubDate><description><![CDATA[var obj = {};obj.a = 100;
var arr = []; arr.a = 100;
function fn() {}
fn.a = 100;

console.log(obj.__proto__);
console.log(arr.__proto__);
console.log(fn.__proto__);

console.log(fn.prototype);

conso...]]></description><category></category></item><item><title><![CDATA[JavaScript二分查找（折半查找）]]></title><link>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83315500</link><guid>https://blog.youkuaiyun.com/HCJS_Zee/article/details/83315500</guid><author>HCJS_Zee</author><pubDate>Tue, 23 Oct 2018 21:21:58 +0800</pubDate><description><![CDATA[function binarySearch(arr, key) {
	var low = 0,
		high = arr.length - 1;
	while(low &amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;= high) {
		var mid = parseInt((high + low) /  2);
		if(key == arr[mid]) {
			return mid;
		}	else if (key &amp;amp;amp;amp;a]]></description><category></category></item></channel></rss>