<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hellokatewj的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hellokatewj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hellokatewj]]></copyright><item><title><![CDATA[React Hooks 全解：原理、API 与应用场景]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/156660005</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/156660005</guid><author>hellokatewj</author><pubDate>Wed, 07 Jan 2026 00:31:34 +0800</pubDate><description><![CDATA[定义：Hooks 是 React 16.8 引入的，解决了 Class 组件逻辑复用难、this 指向混乱等问题，让函数组件拥有了状态和生命周期。核心三剑客：重点介绍 useState（状态）、useEffect（副作用）、useContext（跨组件通信）。性能优化：提到 useMemo（缓存值）和 useCallback（缓存函数），并说明它们是为了避免不必要的渲染和计算。引用与操作：提到 useRef 用于访问 DOM 或存储不触发渲染的变量。高阶场景。]]></description><category></category></item><item><title><![CDATA[前端 Promise 全解：从原理到面试]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/156656919</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/156656919</guid><author>hellokatewj</author><pubDate>Wed, 07 Jan 2026 00:18:35 +0800</pubDate><description><![CDATA[定义：Promise 是异步编程的一种解决方案，解决了回调地狱问题，提供了统一的 API。状态：它有 Pending、Fulfilled、Rejected 三种状态，且状态不可逆。使用构造函数是同步执行的。.then 返回新 Promise，支持链式调用。.catch 处理错误（冒泡机制）。常用 APIall（并发，全对才对）。race（赛跑，谁快用谁）。allSettled（不管死活，都要结果）。any（只要有一个活的就行）。运行机制：Promise 的回调是微任务。]]></description><category></category></item><item><title><![CDATA[Mysql 远程访问SQLSTATE[28000][1045] Access denied for user 'root'@'localhost']]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/42926759</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/42926759</guid><author>hellokatewj</author><pubDate>Tue, 20 Jan 2015 20:41:41 +0800</pubDate><description><![CDATA[用yii链接mysql数据库的时出现一下问题：

SQLSTATE[28000][1045] Access denied for user 'root'@'localhost'（use Password No）


用了以下第一个方法解决的，第二个方法没试，收藏一下！




遇到这个问题2天多了，很是头疼，先是无法建数据库，就是用的默认test，为了赶紧能演示，后test无法]]></description><category></category></item><item><title><![CDATA[php yii框架web项目连接数据库以及crud操作]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/42926721</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/42926721</guid><author>hellokatewj</author><pubDate>Tue, 20 Jan 2015 20:36:59 +0800</pubDate><description><![CDATA[上篇文章介绍了如何配置yii框架，那么这篇我们就来学习yii的crud操作。不懂的朋友可以给我留言。

首先，我们找到我们wen项目的配置文件，..\yiiphp\protected\config 它里面有三个页面，打开它的main.php

我们刚开始看到的页面效果如图：





下面我们把项目的标题改为“我的php项目”；这里给出main.php修改的截图



]]></description><category></category></item><item><title><![CDATA[linux下使用yum安装Apache+php+Mysql+phpMyAdmin]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/42917513</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/42917513</guid><author>hellokatewj</author><pubDate>Tue, 20 Jan 2015 14:33:44 +0800</pubDate><description><![CDATA[适用redhat于32位及64位，前提架设好本地源。在这里不再赘述。 

1 安装Apache+php+Mysql 

a、安装Apahce, PHP, Mysql, 以及php连接mysql库组件 yum -y install httpd php mysql mysql-server php-mysql 

b、安装mysql扩展    yum -y install mysql-co]]></description><category></category></item><item><title><![CDATA[每日学习心得：$.extend()方法和(function($){...})(jQuery)详解]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/42419523</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/42419523</guid><author>hellokatewj</author><pubDate>Mon, 05 Jan 2015 10:55:46 +0800</pubDate><description><![CDATA[2014-02-09

前言：

    节后头两天上班，主要是调整工作状态。项目也不是很紧，趁着周末把年前遇到了一些关于JS和JQuery的一些问题给总结一下。主要是介绍JQuery的extend方法和（function($){}）(jQuery)，也会涉及一些相关的知识。

1.    JS中substring与substr的区别

之前在项目中用到substring方法，因为]]></description><category></category></item><item><title><![CDATA[Linux下配置安装PHP环境]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/42195607</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/42195607</guid><author>hellokatewj</author><pubDate>Sat, 27 Dec 2014 18:50:09 +0800</pubDate><description><![CDATA[参考别人的做法,遇到问题上网查,下面就是安装步骤.


一、安装Apache2.2.22
1、到官网下载  http://httpd.apache.org/download.cgi    
2、解压
    tar  -zxvf httpd-2.2.22.tar.gz
3、建立目标文件夹（注意以下所有操作都时在root用户下执行的）
    mkdir /usr/local/apa]]></description><category></category></item><item><title><![CDATA[HTTP协议详解]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40780623</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40780623</guid><author>hellokatewj</author><pubDate>Tue, 04 Nov 2014 10:19:53 +0800</pubDate><description><![CDATA[引言                                        


HTTP是一个属于应用层的面向对象的协议，由于其简捷、快速的方式，适用于分布式超媒体信息系统。它于1990年提出，经过几年的使用与发展，得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版，HTTP/1.1的规范化工作正在进行之中，而且HTTP-NG(Next Generation of]]></description><category></category></item><item><title><![CDATA[HTML5 WebSocket做聊天室(服务器端基于Jetty8)]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40780121</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40780121</guid><author>hellokatewj</author><pubDate>Tue, 04 Nov 2014 09:57:03 +0800</pubDate><description><![CDATA[早就厌倦了Ajax轮询,一直想试试Web Socket.这次终于体验了一把

 

这次用的浏览器是Chrome,IE不用提了,不支持,FireFox据说是支持的,但是实际试下来不支持.估计是有自己的API,下次再研究....(以上提到的浏览器都是最新稳定版Chrome15,IE9,Firefox8.0)

 

开发环境:Eclipse3.7,Jetty8.04

 

]]></description><category></category></item><item><title><![CDATA[网页设计、web前端、后台的开发流程和注意事项]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40747149</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40747149</guid><author>hellokatewj</author><pubDate>Mon, 03 Nov 2014 20:40:41 +0800</pubDate><description><![CDATA[工作2年了，总感觉每次做项目的时候，都是赶时间，赶时间，加班几班，可是最后总结一看，百分之50的时间都浪费在做无用功上面了，甚至因为设计人员的失误，造成了前端和程序大量的返工，休整，加班，造成了开发人员的疲惫。

    我个人总结了一下觉得认为比较好的能够节省时间效率的工作流程应该是： 


   1.产品经理做出整体的构思，提出明确需求，并且形成文档和demo 
     包括：网]]></description><category></category></item><item><title><![CDATA[用JS改变的元素CSS样式]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40746223</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40746223</guid><author>hellokatewj</author><pubDate>Mon, 03 Nov 2014 19:49:40 +0800</pubDate><description><![CDATA[CSS样式的引用有3种方式：style引用、class引用、id引用，所以js改变元素的样式我们也分3种来说。
1.js改变由style方式引用的样式：
方法一：document.divs.style.cssText="border:1px solid #000000;color:#FF0000";
方法二：document.divs.setAttribute("style","border]]></description><category></category></item><item><title><![CDATA[href=#与href=javascriptvoid(0)的区别]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40746199</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40746199</guid><author>hellokatewj</author><pubDate>Mon, 03 Nov 2014 19:48:18 +0800</pubDate><description><![CDATA[＃"包含了一个位置信息
默认的锚点是＃top 也就是网页的上端
而javascript:void(0)  仅仅表示一个死链接
这就是为什么有的时候页面很长浏览链接明明是＃可是跳动到了页首
而javascript:void(0) 则不是如此
所以调用脚本的时候最好用void(0)
或者
等
打开新窗口链接的几种办法
1.window.open('url')
2.用自定义函数
 ]]></description><category></category></item><item><title><![CDATA[兼容IE和FF的js脚本做法（比较常用）]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40744359</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40744359</guid><author>hellokatewj</author><pubDate>Mon, 03 Nov 2014 18:01:35 +0800</pubDate><description><![CDATA[做BS开发就难免会用到javascript，而每个浏览器对javascript的支持有不同。这就需要我们程序员去兼容他们
下面是兼容IE和FF的js脚本做法和分解（部分选自网上，经本人整理），希望对大家有帮助。   
  
  
/*以下以 IE 代替 Internet Explorer，以 MF/FF 代替 Mozzila Firefox  */ 
  
//window.event]]></description><category></category></item><item><title><![CDATA[addEventListener和attachEvent区别]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40737491</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40737491</guid><author>hellokatewj</author><pubDate>Mon, 03 Nov 2014 10:50:23 +0800</pubDate><description><![CDATA[一、适应的浏览器版本不同

attachEvent方法适用于IE    addEventListener方法适用于FF

 

二、针对的事件不同

attachEvent中的事件带on   而addEventListener中的事件不带on

 

三、参数的个数不同

attachEvent方法两个参数：第一个参数为事件名称，第二个参数为接收事件处理的函数； add]]></description><category></category></item><item><title><![CDATA[js数据结构]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40723781</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40723781</guid><author>hellokatewj</author><pubDate>Mon, 03 Nov 2014 00:51:06 +0800</pubDate><description><![CDATA[从结构上看，所有的数据（data）最终都可以分解成三种类型：


第一种类型是标量（scalar），也就是一个单独的字符串（string）或数字（numbers），比如"北京"这个单独的词。

第二种类型是序列（sequence），也就是若干个相关的数据按照一定顺序并列在一起，又叫做数组（array）或列表（List），比如"北京，上海"。

第三种类型是映射（mapping），也就]]></description><category></category></item><item><title><![CDATA[JS继承机制--写的比较通俗易懂，一系列文章看文对于你对于JS继承机制的理解会加深很多]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40714369</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40714369</guid><author>hellokatewj</author><pubDate>Sun, 02 Nov 2014 20:50:46 +0800</pubDate><description><![CDATA[Javascript继承机制的设计思想

作者： 阮一峰
日期： 2011年6月 5日




我一直很难理解Javascript语言的继承机制。


它没有"子类"和"父类"的概念，也没有"类"（class）和"实例"（instance）的区分，全靠一种很奇特的"原型链"（prototype chain）模式，来实现继承。
我花了很多时间，学习这个部分，还做了很多笔记。但]]></description><category></category></item><item><title><![CDATA[Java中函数参数的传递是值传递还是引用传递]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40711363</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40711363</guid><author>hellokatewj</author><pubDate>Sun, 02 Nov 2014 16:53:31 +0800</pubDate><description><![CDATA[[java] view
 plaincopyprint?






什么是值传递?什么是引用传递?  
  
值传递是将要传递的值作为一副本传递.如   
int i=4;  
int j=i;  
这里相当于把14复制了一个副本给j,结果是i=4,j=4  


引用传递,传递的是引用对象的内存地址 
int *p,*p1; 
int j=5; *p=j; ]]></description><category></category></item><item><title><![CDATA[display:inline、block、inline-block的区别]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40709229</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40709229</guid><author>hellokatewj</author><pubDate>Sun, 02 Nov 2014 14:09:41 +0800</pubDate><description><![CDATA[display:block就是将元素显示为块级元素.

　　block元素的特点是：
　　总是在新行上开始；
　　高度，行高以及顶和底边距都可控制；
　　宽度缺省是它的容器的100%，除非设定一个宽度
　　, , , ,  和 是块元素的例子。

　　display:inline就是将元素显示为行内元素.

　　inline元素的特点是： 
　　和其他元素都在一行上；
　　]]></description><category></category></item><item><title><![CDATA[JS计算字符串所占字节数]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40693381</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40693381</guid><author>hellokatewj</author><pubDate>Sun, 02 Nov 2014 00:36:59 +0800</pubDate><description><![CDATA[废话不说，直接正题吧。

最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存，众所周知的，js是使用Unicode编码的。而Unicode的实现有N种，其中用的最多的就是UTF-8和UTF-16。因此本文只对这两种编码进行讨论。

下面这个定义摘自维基百科（http://zh.wikipedia.org/zh-cn/UTF-8），做了部分删减。


UT]]></description><category></category></item><item><title><![CDATA[Java垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/hellokatewj/article/details/40678547</link><guid>https://blog.youkuaiyun.com/hellokatewj/article/details/40678547</guid><author>hellokatewj</author><pubDate>Sat, 01 Nov 2014 11:15:33 +0800</pubDate><description><![CDATA[1. 垃圾回收的意义
　　在C++中，对象所占的内存在程序结束运行之前一直被占用，在明确释放之前不能分配给其它对象；而在Java中，当没有对象引用指向原先分配给某个对象的内存时，该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息"，这些信息将被丢弃。当一个对象不再被引用的时候，内存回收它占领的空间，以便空间被后来的新对象使用。事实上，除了释放]]></description><category></category></item></channel></rss>