<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gcc_java的博客]]></title><description><![CDATA[java相关的博客]]></description><link>https://blog.youkuaiyun.com/gcc_java</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gcc_java]]></copyright><item><title><![CDATA[Babel插件指南]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/127906175</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/127906175</guid><author>gcc_java</author><pubDate>Thu, 17 Nov 2022 16:17:15 +0800</pubDate><description><![CDATA[babel插件开发，以及相关知识说明]]></description><category></category></item><item><title><![CDATA[绘画作品简介]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/126106118</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/126106118</guid><author>gcc_java</author><pubDate>Mon, 01 Aug 2022 17:40:50 +0800</pubDate><description><![CDATA[个人作品简介]]></description><category></category></item><item><title><![CDATA[js实现pc打开摄像头，拍照，下载]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/125994748</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/125994748</guid><author>gcc_java</author><pubDate>Tue, 26 Jul 2022 14:54:28 +0800</pubDate><description><![CDATA[js基于navigator.mediaDevices实现pc摄像头使用]]></description><category></category></item><item><title><![CDATA[前端硬核知识点（五）]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/125657463</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/125657463</guid><author>gcc_java</author><pubDate>Thu, 07 Jul 2022 14:24:39 +0800</pubDate><description><![CDATA[前端提升内容]]></description><category></category></item><item><title><![CDATA[前端硬核知识点（四）]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/125656117</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/125656117</guid><author>gcc_java</author><pubDate>Thu, 07 Jul 2022 11:52:40 +0800</pubDate><description><![CDATA[js高级的内容基础技术]]></description><category></category></item><item><title><![CDATA[vue2源码解读笔记(一)]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/122582982</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/122582982</guid><author>gcc_java</author><pubDate>Fri, 21 Jan 2022 16:37:46 +0800</pubDate><description><![CDATA[背景：前端自我学习到了一个瓶颈
方式：从网络获取别人的文章资料，学习实践，添加自己遇到的问题和解决方式
目的：读懂vue部分源码，体验vue的设计方式，弥补源码涉及到但本人不具备的知识

一
源码下载，调试见歹佬原文：https://juejin.cn/post/6949370458793836580
（可以直接看歹佬的原文，不止技术厉害，文章也写得好。我这里是个人学习的笔记，可能你也遇到了，可以参考）
二
Vue 初始化过程
1、Vue 构造函数在 /src/core/instance/index.js.]]></description><category></category></item><item><title><![CDATA[前端硬核知识点（三）]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/112611152</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/112611152</guid><author>gcc_java</author><pubDate>Thu, 14 Jan 2021 15:14:34 +0800</pubDate><description><![CDATA[简述浏览器的渲染过程，回流(重排)和重绘（reflow和repaint）在渲染过程中的哪一部分？
html文档解析成dom树，css解析成css对象模型（CSS Object Model），两者合并生成渲染树（rendering tree），渲染树进行布局（layer）即根据渲染树带有的位置信息计算位置，最后绘制（painting）屏幕就显示了页面。

回流：布局（layer）发生变化需要倒回去重新渲染，这个回退就是回流（reflow）。因为绘制发生在布局的下一步，所以回流必定触发重绘
重绘：绘制时背景色，]]></description><category></category></item><item><title><![CDATA[前端硬核知识点（二）]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/112610808</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/112610808</guid><author>gcc_java</author><pubDate>Thu, 14 Jan 2021 15:10:39 +0800</pubDate><description><![CDATA[promise 有哪些状态？简述 promise.all 的实现原理

Pending状态（进行中）
Fulfilled状态（已成功）
Rejected状态（已失败）

参考链接：https://www.jianshu.com/p/b16e7c9e1f9f
参考链接： https://www.jianshu.com/p/c8af0c130ccb
简述 CORS（跨源域资源共享） 的用途以及基本设置
跨源资源共享 (CORS) （或通俗地译为跨域资源共享）是一种基于[HTTP]头的机制，该机制通过允许服务器标]]></description><category></category></item><item><title><![CDATA[前端硬核知识点（一）]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/112610305</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/112610305</guid><author>gcc_java</author><pubDate>Thu, 14 Jan 2021 15:05:45 +0800</pubDate><description><![CDATA[Vue 中双向数据绑定的实现原理是怎样的？
// 通过Object.defineProperty( )设置了对象Book的name属性
// get就是在读取name属性这个值触发的函数，set就是在设置name属性这个值触发的函数
// vue通过这种方法来进行数据劫持
var Book = {}
var name = '';
Object.defineProperty(Book, 'name', {
  set: function (value) {
    name = value;
    cons]]></description><category></category></item><item><title><![CDATA[Tagcc-共享网址（零）]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/89684530</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/89684530</guid><author>gcc_java</author><pubDate>Mon, 29 Apr 2019 23:11:05 +0800</pubDate><description><![CDATA[此文和具体开发无关，纯属牢骚。

19年开年以来咸鱼了一段时间，这里强迫自己开发一个小玩意，近一年主业前端，重拾下java的感觉，也希望借助这个小玩意融汇下所学所用。

共享网址：心路历程，平时收藏的网址比较多，有工作的，有娱乐的，一般使用edge和谷歌浏览器，不喜欢登录浏览器，浏览器收藏夹的分类功能也不够我的使用需求。所以就想着自己做一个类似收藏夹的玩意，然后自己写需求，写功能，画原型图，然后…...]]></description><category></category></item><item><title><![CDATA[前端-进度条实践]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/85262218</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/85262218</guid><author>gcc_java</author><pubDate>Wed, 26 Dec 2018 15:06:07 +0800</pubDate><description><![CDATA[最近有需求画横向展示的柱状图，插件开始使用了echarts，实现效果不理想，最后改为表格和进度条配合，完成柱状图（动态的）

关键标签：&amp;lt;progress&amp;gt;

属性：

max: 规定任务一共需要多少工作，就是柱状图100%时对应的值

value: 规定已经完成了多少任务，即柱状图的长度

思路：修改 progress 标签样式，完成横向柱状图。

注意：样式要兼容各个浏览器

例如...]]></description><category></category></item><item><title><![CDATA[前端-localStorage]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/83824491</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/83824491</guid><author>gcc_java</author><pubDate>Wed, 07 Nov 2018 15:26:31 +0800</pubDate><description><![CDATA[在HTML5中，新加入了一个localStorage特性，这个特性主要是用来作为本地存储来使用的，解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k)，localStorage中一般浏览器支持的是5M大小，这个在不同的浏览器中localStorage会有所不同。

在使用localStorage的时候，我们需要判断浏览器是否支持localStorage这个属性：
...]]></description><category></category></item><item><title><![CDATA[前端-杂记]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/82858668</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/82858668</guid><author>gcc_java</author><pubDate>Wed, 26 Sep 2018 21:16:50 +0800</pubDate><description><![CDATA[很久没有写博客，今天随意写点

近来一直在写前端业务逻辑代码，由于之前学习和使用的都是大杂烩，对专业的前端代码书写很乏力，主要是前端代码思想这块，能实现功能，但不够高效，不够简练。

界面使用Element UI框架，通过文档和案例构造出项目需要的逻辑组件。

在工作途中，首次使用java的websocket和js的websocket通信，在vue中实现订阅主推显示实时行情，这块内容挺有意思，初时...]]></description><category></category></item><item><title><![CDATA[正则表达式入门]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/82658772</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/82658772</guid><author>gcc_java</author><pubDate>Wed, 12 Sep 2018 11:25:39 +0800</pubDate><description><![CDATA[近来常用到正则，避免眼盲直接从网络拷贝导致不能预料的错误，这里做简单了解。

一、


简单示例：
^once // 匹配那些以once开头的字符串;在[]内出现时表示'非'。例如该模式与字符串&quot;once upon a time&quot;匹配，与&quot;There once was a man from NewYork&quot;不匹配

bucket$ //以 bucket 结尾,与&quot;Who kept all of t...]]></description><category></category></item><item><title><![CDATA[java多线程初探（零）使用Lock-线程间通信]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/81391625</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/81391625</guid><author>gcc_java</author><pubDate>Fri, 03 Aug 2018 17:39:32 +0800</pubDate><description><![CDATA[测试类


package gcc.thread.Lock.condition;

/**
 * 类似wait和notify，ReentrantLock使用Condition来控制等待和唤醒机制，并且可以根据分组唤醒指定的线程，选择性通知
 * 如下，线程aa和ab在等待时所属不同的Condition，通过condition_A只唤醒了aa的等待
 */
public class Test {

...]]></description><category></category></item><item><title><![CDATA[java多线程初探（零）生产者消费者模式-线程通信]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/81390853</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/81390853</guid><author>gcc_java</author><pubDate>Fri, 03 Aug 2018 17:17:48 +0800</pubDate><description><![CDATA[测试类


package gcc.twoThreadTransData.producerAndConsumer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 多个线程之间通信
 * 消费者生产者模式
 * 多个生产者和消费者
 * 流程：
 * 多个线程（生产者，消费者）公用一把锁
 * 本例设置了两个生产者...]]></description><category></category></item><item><title><![CDATA[java多线程初探（零）线程间通信]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/81390573</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/81390573</guid><author>gcc_java</author><pubDate>Fri, 03 Aug 2018 16:53:44 +0800</pubDate><description><![CDATA[测试类：


package gcc.twoThreadTransData.waitAndNotify;

/**
 * 通过wait和notify来实现多线程间的通信，这样可以避免一直轮询的消耗
 * wait和notify需要在同步代码块内调用
 * 对正在wait的线程执行interrupt()，会报异常，同时释放锁
 *
 * 1，代码执行到wait，等待执行，并释放锁
 * 2，noti...]]></description><category></category></item><item><title><![CDATA[java多线程初探（零）基础demo]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/81365728</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/81365728</guid><author>gcc_java</author><pubDate>Thu, 02 Aug 2018 18:55:54 +0800</pubDate><description><![CDATA[
package gcc.thread.test;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 一个进程至少一个线程，如main方法的线程由jvm来创建，取名也叫main（线程）
 * 此demo主要介绍Thread类的方法
 */
public class Dem...]]></description><category></category></item><item><title><![CDATA[git 常用命令]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/81130803</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/81130803</guid><author>gcc_java</author><pubDate>Fri, 20 Jul 2018 14:12:51 +0800</pubDate><description><![CDATA[使用git步骤

//从远处仓库clone代码，远程仓库默认名字叫origin，可以是http方式，也可以是SSH方式
$ git clone https://github.com/mengguagua/demoVue.git

//查看当前分支
$ git branch

//指定远程分支到本地，例如dev分支
$ git checkout -b dev origin/dev  

//修改文件...]]></description><category></category></item><item><title><![CDATA[vue笔记（六）使用vuex]]></title><link>https://blog.youkuaiyun.com/gcc_java/article/details/81099336</link><guid>https://blog.youkuaiyun.com/gcc_java/article/details/81099336</guid><author>gcc_java</author><pubDate>Wed, 18 Jul 2018 16:23:37 +0800</pubDate><description><![CDATA[这里通过一个实例，来描述vuex的mapState ， mapGetters ， mapActions 

这里使用 Element UI  官网地址：http://element-cn.eleme.io/#/zh-CN/component/select

一、使用 Element UI 给出的demo，选择其一拷贝到本地项目

二、修改demo，得到如下：


    &amp;lt;div&amp;gt;
 ...]]></description><category></category></item></channel></rss>