<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CSU_Zipple的博客]]></title><description><![CDATA[21岁是怎样的生活呢？]]></description><link>https://blog.youkuaiyun.com/csu_passer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; csu_passer]]></copyright><item><title><![CDATA[http-proxy-middleware onProxyRes中文数据乱码的解决方案]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/106018139</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/106018139</guid><author>csu_passer</author><pubDate>Sat, 09 May 2020 14:19:30 +0800</pubDate><description><![CDATA[onProxyRes相关代码：
option.onProxyRes = function (proxyRes: any, req: any, res: any) {
        // 参考：https://www.jianshu.com/p/f8ac6e813b96
        const oriWriteHead = res.writeHead;
        const oriWrite = res.write;
        const oriEnd = res.end;
        ]]></description><category></category></item><item><title><![CDATA[Webpack和Koa2代理WebSocket]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/105966421</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/105966421</guid><author>csu_passer</author><pubDate>Thu, 07 May 2020 10:06:12 +0800</pubDate><description><![CDATA[相关运行环境：
mac os: 10.14.5 (18F132)

chrome： 81.0.4044.122

Node：v10.16.1

npm: v6.14.4

Webpack-dev-server: v3.9.0

http-proxy-middleware: 1.0.3

Koa2-connect: 1.0.2

koa: 2.7.0

webpack代理
webpack-dev-s...]]></description><category></category></item><item><title><![CDATA[封装WebSocket]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/105816600</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/105816600</guid><author>csu_passer</author><pubDate>Tue, 28 Apr 2020 16:20:08 +0800</pubDate><description><![CDATA[功能
一般来说，WebSocket应该具有以下功能：

断线重连
单例模式
发布订阅
超时提示
心跳保活
错误处理

源码
源码使用ts编写：
/**
 * @file websocket链接相关
 * @author zoubo01&lt;zoubo01@baidu.com&gt;
 */

interface SubscribeList {
    [index: string]: Funct...]]></description><category></category></item><item><title><![CDATA[Vue使用自定义指令实现拖拽行为]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/105709661</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/105709661</guid><author>csu_passer</author><pubDate>Thu, 23 Apr 2020 15:56:37 +0800</pubDate><description><![CDATA[需求
通过自定义指令的方式实现拖拽效果，预期的使用方式为：
        &lt;div style="background: #f00; width: 200px; height: 200px;" v-drag&gt;
            XXXX
        &lt;/div&gt;

更重要的一个需求点：

拖拽元素内部的子元素可以自行阻止拖拽行为

比如：
 
 &lt;div ...]]></description><category></category></item><item><title><![CDATA[Not implemented: navigation (except hash changes)]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/105634144</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/105634144</guid><author>csu_passer</author><pubDate>Mon, 20 Apr 2020 14:12:45 +0800</pubDate><description><![CDATA[error
在进行jest单元测试的时候，报了这样的错误。
解决办法
在给location重定义之前删除原有属性即可：
delete window.location;
Object.defineProperty(window, 'location', {
    value: {
        href: url,
        hash: ''
    }
});



...]]></description><category></category></item><item><title><![CDATA[ElTable实现空单元格自动填充占位符]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/105418530</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/105418530</guid><author>csu_passer</author><pubDate>Thu, 09 Apr 2020 19:55:38 +0800</pubDate><description><![CDATA[ElTable实现空单元格自动填充占位符‘–’
根据前端开发规范及UE建议，考虑给表单的空单元格插入占位符‘–’，一开始的想法很简单，在el-table-column中渲染时对传入的data进行判断即可，相关代码如下：
&lt;el-table-column label="按键" width="100px"&gt;
    &lt;span class="c-one-line did-desc-t...]]></description><category></category></item><item><title><![CDATA[元素移动后鼠标hover效果不消失的问题解决方案分析]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/103976643</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/103976643</guid><author>csu_passer</author><pubDate>Tue, 14 Jan 2020 17:15:42 +0800</pubDate><description><![CDATA[问题描述
MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)  OS: 10.14.5 (18F132)
Chrome: 79.0.3945.88
&lt;div class="hover"&gt;
  	test
&lt;/div&gt;

.hover:hover {
	 color: blue;
}

鼠标移动在该div元素上，点击后通过...]]></description><category></category></item><item><title><![CDATA[在lerna中使用npm link时未发布的package报404]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/103043761</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/103043761</guid><author>csu_passer</author><pubDate>Wed, 13 Nov 2019 10:24:46 +0800</pubDate><description><![CDATA[如何在lerna中调试包含私有包依赖的package
项目结构
.
├── README.md
├── lerna.json
├── package.json
└── packages
    ├── module-a
    │   ├── README.md
    │   ├── bin
    │   ├── node_modules
    │   ├── package-lock.js...]]></description><category></category></item><item><title><![CDATA[vue-clipboard2在vue的created生命周期中直接调用copyText方法报错的原因分析]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102954995</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102954995</guid><author>csu_passer</author><pubDate>Thu, 07 Nov 2019 14:52:13 +0800</pubDate><description><![CDATA[vue-clipboard2在vue的created生命周期中直接调用copyText方法报错
先说现象：在created生命周期中会进入reject状态（被catch到），不在生命周期的方法中调用而通过click事件来调用会正常进入resolved状态（成功进入then阶段）。
下面进行相关源码分析：
出错代码：
created() {
    this.$copyText('asdasdasd...]]></description><category></category></item><item><title><![CDATA[Object.fromEntries不兼容低版本浏览器]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102947758</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102947758</guid><author>csu_passer</author><pubDate>Thu, 07 Nov 2019 09:44:55 +0800</pubDate><description><![CDATA[fromEntries是es10提出来的方法
polyfill和babel都不转换这个方法，所以…


]]></description><category></category></item><item><title><![CDATA[LeetCode - 94. 二叉树的中序遍历]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102944456</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102944456</guid><author>csu_passer</author><pubDate>Wed, 06 Nov 2019 22:12:24 +0800</pubDate><description><![CDATA[/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var...]]></description><category></category></item><item><title><![CDATA[LeetCode - 58. 最后一个单词的长度]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102944166</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102944166</guid><author>csu_passer</author><pubDate>Wed, 06 Nov 2019 21:54:53 +0800</pubDate><description><![CDATA[/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function(s) {
    s = s.trim();
    const len = s.length;
    let ret = 0;
    
    for (let i = len - 1; i &gt;= 0; i--) {
  ...]]></description><category></category></item><item><title><![CDATA[LeetCode - 6. Z 字形变换]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102925929</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102925929</guid><author>csu_passer</author><pubDate>Tue, 05 Nov 2019 22:31:14 +0800</pubDate><description><![CDATA[暴力解法…
/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */
var convert = function(s, numRows) {
    let arr = [];
    
    for (let i = 0; i &lt; numRows; i++) {
        arr.p...]]></description><category></category></item><item><title><![CDATA[vue-cli及create-react-app源码分析]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102923527</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102923527</guid><author>csu_passer</author><pubDate>Tue, 05 Nov 2019 20:16:56 +0800</pubDate><description><![CDATA[vue-cli及create-react-app 工具调研
vue-cli v3项目创建过程分析
vue-cli的运行命令为vue create [projectName]
在vue-cli项目v3分支中，找到package/@vue/cli/bin/vue.js，这个文件里定义了vue-cli的相关命令：
program
  .command('create &lt;app-name&gt;')...]]></description><category></category></item><item><title><![CDATA[利用node检查git commit的文件名是否规范]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102906843</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102906843</guid><author>csu_passer</author><pubDate>Tue, 05 Nov 2019 09:29:20 +0800</pubDate><description><![CDATA[hooks
利用git的hooks来触发文件名校验
shell or node?
how to check? rule?

]]></description><category></category></item><item><title><![CDATA[LeetCode -  122. 买卖股票的最佳时机 II]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102906783</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102906783</guid><author>csu_passer</author><pubDate>Mon, 04 Nov 2019 22:19:53 +0800</pubDate><description><![CDATA[不知道都是些什么神仙，绞尽脑汁想了个O(n)出来…竟然只超过了2/3
/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    const len = prices.length;
    let profit = 0;
    let min = prices[0...]]></description><category></category></item><item><title><![CDATA[Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102741611</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102741611</guid><author>csu_passer</author><pubDate>Fri, 25 Oct 2019 13:55:39 +0800</pubDate><description><![CDATA[最近同事在进行单测时报了这个超时错误，待测方法如下：
    fetchData(...args) {
        const requestParams = {
			//...
        };
        return new Promise((resolve, reject) =&gt; {
            http.post('api', requestParams)...]]></description><category></category></item><item><title><![CDATA[LeetCode - 219. 存在重复元素 II]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102734100</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102734100</guid><author>csu_passer</author><pubDate>Thu, 24 Oct 2019 22:52:07 +0800</pubDate><description><![CDATA[只想到用双指针做，但是速度太慢了，不过明显两次循环时有部分操作可以跳过，但是不想做了。

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {boolean}
 */
var containsNearbyDuplicate = function(nums, k) {
    while (k &gt; 0) {
      ...]]></description><category></category></item><item><title><![CDATA[299. 猜数字游戏]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102630868</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102630868</guid><author>csu_passer</author><pubDate>Fri, 18 Oct 2019 19:35:12 +0800</pubDate><description><![CDATA[/**
 * @param {string} secret
 * @param {string} guess
 * @return {string}
 */
var getHint = function(secret, guess) {
    const len = secret.length;
    let dict = {};
    let bulls = [];
    let co...]]></description><category></category></item><item><title><![CDATA[TypeError: this[MODULE_TYPE] is not a function]]></title><link>https://blog.youkuaiyun.com/csu_passer/article/details/102625426</link><guid>https://blog.youkuaiyun.com/csu_passer/article/details/102625426</guid><author>csu_passer</author><pubDate>Fri, 18 Oct 2019 14:49:52 +0800</pubDate><description><![CDATA[在利用mini-css-extract-plugin插件抽取css时遇到这个错误
解决方案
https://github.com/webpack-contrib/mini-css-extract-plugin/issues/73


]]></description><category></category></item></channel></rss>