<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[char56789的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/char56789</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; char56789]]></copyright><item><title><![CDATA[文字缩进及弱网络环境下用文字代替图片的兜底方案]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/117742419</link><guid>https://blog.youkuaiyun.com/char56789/article/details/117742419</guid><author>char56789</author><pubDate>Wed, 09 Jun 2021 15:02:09 +0800</pubDate><description><![CDATA[如何对文字进行缩进以及如何在网络情况很不好的情况下用文字来代替图片
今天我们就来说一下：
先来说一下如何对文字进行缩进：
相信有很多刚学习前端的小伙伴们，在写登录表单时经常会遇到一个问题是想要把‘密码’进行缩进达到和‘用户名’相同长度，但是使用html提供的&amp;nbsp无法完美的达到目标！
这里有一个css属性可以满足我们的要求，那就是text-indent（它可以进行首行的缩进）。
现在我们再来说一下如何用文字代替图片（在网络不好的情况下）：
当我们的网速很慢时，CSS/Javascript加载不了]]></description><category></category></item><item><title><![CDATA[react中的回调地狱详细解析]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115790066</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115790066</guid><author>char56789</author><pubDate>Sat, 17 Apr 2021 10:34:52 +0800</pubDate><description><![CDATA[标签：function 地狱 示例 代码 理解 调用 回调
回调地狱 (着重于回调地狱的理解,解决办法网上有很多示例)
这个问题一直围绕着我,但是自己也没有去深究 一直的理解就是可以使用promise解决,代码布局比较乱,今天为了加深理解就写一下笔记
1.解释
代码示例
var sayhello = function (name, callback) {
setTimeout(function () {
console.log(name);
callback();
}, 1000);
}
sayhello(]]></description><category></category></item><item><title><![CDATA[react-hook完全上手指南]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115789840</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115789840</guid><author>char56789</author><pubDate>Sat, 17 Apr 2021 10:31:08 +0800</pubDate><description><![CDATA[1 Why Hook?
1.1 从React组件设计理论说起
React以一种全新的编程范式定义了前端开发约束，它为视图开发带来了一种全新的心智模型：
React认为，UI视图是数据的一种视觉映射，即UI = F(DATA)，这里的F需要负责对输入数据进行加工、并对数据的变更做出响应
公式里的F在React里抽象成组件，React是以组件（Component-Based）为粒度编排应用的，组件是代码复用的最小单元
在设计上，React采用props属性来接收外部的数据，使用state属性来管理组件自身产生的]]></description><category></category></item><item><title><![CDATA[详解react高阶组件(HOC)的用法以及它使用的场景]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115789607</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115789607</guid><author>char56789</author><pubDate>Sat, 17 Apr 2021 10:25:45 +0800</pubDate><description><![CDATA[谈点：一篇面向初学者的 HOC 介绍。高阶组件听起来挺唬人的，只看名字恐怕不是那么容易明白究竟是何物，而且通常来讲高阶组件并不是组件，而是接受组件作为参数，并且返回组件的函数。早期利用 ES5 的 mixin 语法来做的事，基本都可以使用高阶组件代替，而且能做的还有更多。
前言
写这篇文章的起因是其他关于高阶组件（Higher-Order Components）的文章，包含官方文档，都令初学者感到相当困惑。我知道有高阶组件这样一个东西，但不知道它到底有什么用。所以，想通过一篇文章来对高阶组件有一个更好的理解]]></description><category></category></item><item><title><![CDATA[react-hooks详解（常见的方法的使用和解析以及区别）]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115789409</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115789409</guid><author>char56789</author><pubDate>Sat, 17 Apr 2021 10:19:15 +0800</pubDate><description><![CDATA[1、什么是hook？
react hook是react 16.8推出的方法，能够让函数式组件像类式组件一样拥有state、ref、生命周期等属性。
2、为什么要出现hook？
函数式组件是全局当中一个普通函数，在非严格模式下this指向window，但是react内部开启了严格模式，此时this指向undefined，无法像类式组件一样使用state、ref，函数式组件定义的变量都是局部的，当组件进行更新时会重新定义，也无法存储，所以在hook出现之前，函数式组件有很大的局限性，通常情况下都会使用类式组件来]]></description><category></category></item><item><title><![CDATA[this.props.children详解]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115789266</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115789266</guid><author>char56789</author><pubDate>Sat, 17 Apr 2021 10:15:43 +0800</pubDate><description><![CDATA[React关于 this.props.children 总结
props
react是单向数据流，props是我们从上个组件传值传下来的集合，每一个props都应该对应的是从上个组件传过来的值。但是这里有一个例外，那就是this.props.children，如下所示
打印结果
this.props.children 的值有三种可能：
如果当前组件没有子节点，它就是 undefined ;
如果有一个子节点，数据类型是 Object；
如果有多个子节点，数据类型就是 Array。
所以，处理 this.pr]]></description><category></category></item><item><title><![CDATA[Axios和ajax的异同点详解以及在express后端使用redirect重定向对ajax无效的原因！]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115463934</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115463934</guid><author>char56789</author><pubDate>Tue, 06 Apr 2021 16:28:30 +0800</pubDate><description><![CDATA[问题描述：
自己在使用 express 的 redirect 时，并不进行跳转操作，但是前端是可以接收到整个后端将要跳转的整个页面的 html
已经是301状态码，但是页面不跳转
原因：
使用 ajax 后，后端无法直接让前端进行页面跳转。需要前端进行状态码和后端返回的数据的判断，然后前端自己进行跳转页面。
因为 ajax 是一个完整的请求和回掉的过程，header 头是不会变的。我们以前使用后端来让前端跳转原理是通过给浏览器发送一个特殊的 header 然后进行跳转。而 ajax 不会进行更改 heade]]></description><category></category></item><item><title><![CDATA[为什莫react项目中没有webpack.config.js文件（2021-03-21）]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/115054049</link><guid>https://blog.youkuaiyun.com/char56789/article/details/115054049</guid><author>char56789</author><pubDate>Sun, 21 Mar 2021 19:20:18 +0800</pubDate><description><![CDATA[当我们使用react的脚手架创建了一个react项目后，一定会有一个疑问，那就是为什么create-react-app创建的项目没有webpack.config.js文件！

官方文档提示：默认配置文件都是隐藏的，点开package.json文件，可看到配置的命令是以 “react-scripts *” 来执行，所以打开node_modules文件夹，找到react-scripts文件夹进去， config目录即是你需要找的webpack的配置文件。如果要自定义，**运行npm run eject，**就可]]></description><category></category></item><item><title><![CDATA[2021-01-06]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/112290428</link><guid>https://blog.youkuaiyun.com/char56789/article/details/112290428</guid><author>char56789</author><pubDate>Wed, 06 Jan 2021 18:46:02 +0800</pubDate><description><![CDATA[今天给大家理一下JAVA 中的访问修饰符 的规定范围吧

public 无限制
private 同一个类中可以访问
default	"其他包中的类"不可访问（说下这不是个修饰符，是指默认情况下，就是说同一包中的类可以访问）
protected "其他包中非子类"不可访问（即要存在被继承关系，protected关键字就是为了继承而创造的）


...]]></description><category></category></item><item><title><![CDATA[2020-12-25]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/111695947</link><guid>https://blog.youkuaiyun.com/char56789/article/details/111695947</guid><author>char56789</author><pubDate>Fri, 25 Dec 2020 17:58:00 +0800</pubDate><description><![CDATA[为什么在react中的JSX代码的外面要加上一个小圆括号？
简单的来说，就是为了防止分号插入的bug！

]]></description><category></category></item><item><title><![CDATA[详解onfoce与onblur之间的区别]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109710766</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109710766</guid><author>char56789</author><pubDate>Sun, 15 Nov 2020 22:00:20 +0800</pubDate><description><![CDATA[在我们平时开发网站中，我们一定会经常遇到onfocus和onblur这两个事件，今天就给大家简单介绍一下这两个事件：
onfocus 事件在对象获得焦点时发生。





请输入: &lt;input type=“text” οnfοcus=“setStyle(this.id)” id=“fname”&gt;


当文本框得到焦点的时候，触发setStyle()方法：
onblur 事件会在对象失去焦点时发生。





请输入: &lt;input type=“text” id=“fname” οnblu]]></description><category></category></item><item><title><![CDATA[在react中使用jxs时应注意的两点问题]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109692015</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109692015</guid><author>char56789</author><pubDate>Sat, 14 Nov 2020 15:53:35 +0800</pubDate><description><![CDATA[在使用react开发项目的时候，机会都会使用到JSX 语法，它的主要特点就是，凡是使用 到JavaScript 的值的地方，都可以插入这种类似 HTML 的语法。
在使用的时候需要有两个注意的点：

所有 HTML 标签必须是闭合的，如果写成love就会报错。如果是那种没有闭合语法的标签，必须在标签尾部加上斜杠，比如。
任何 JSX 表达式，顶层只能有一个标签，也就是说只能有一个根元素。下面的写法会报错。
// 报错，因为根元素的位置有两个并列的标签
const lut= tiantian520;

// ]]></description><category></category></item><item><title><![CDATA[再次对bind深入理解]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109690477</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109690477</guid><author>char56789</author><pubDate>Sat, 14 Nov 2020 14:30:13 +0800</pubDate><description><![CDATA[我们直接进入主题，bind函数的理解
语法：
function.bind(thisArg[,arg1[,arg2[,argN]]])
首先不看传的参数，bind函数实现的功能就是将function绑定在thisArg环境上，使其可以在thisArg上调用function。听起来这和apply/call的作用好像一样，那到底是不是一样呢？
var a={x:1};
function foo(){
return this.x;
}
console.log(foo.call(a));//1
console.log]]></description><category></category></item><item><title><![CDATA[js对象中的自定义属性的详解以及使用]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109686846</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109686846</guid><author>char56789</author><pubDate>Sat, 14 Nov 2020 09:52:26 +0800</pubDate><description><![CDATA[说来也有点惭愧哈!(都把react框架学的差不多了，现在才搞明白对象中的自定义属性如何使用)
接下来我们直接进入主题：
dataset（即对像的自定义属性）
在组件节点中可以附加一些自定义数据。这样，在事件中可以获取这些自定义的节点数据，用于事件的逻辑处理。
在 WXML 中，这些自定义数据以 data- 开头，多个单词由连字符 - 连接。这种写法中，连字符写法会转换成驼峰写法，而大写字符会自动转成小写字符。如：
data-element-type ，最终会呈现为 event.currentTarget.d]]></description><category></category></item><item><title><![CDATA[详解编码GBK的不可映射字的原因及解决方法]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109591017</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109591017</guid><author>char56789</author><pubDate>Tue, 10 Nov 2020 07:29:28 +0800</pubDate><description><![CDATA[先检查是什么原因造成的问题：
1、 查本机区域语言设置中文没有问题
2、 此程序可以在eclipse上正常运行
右键properties-resource-text file encoding 查是UTF-8
解决方法：
1、运行是使用javac -encoding UTF-8HelloWorlewww.java
编译通过
2、记事本打开java源文件，另存为选择ANSI编码
编译通过
扩展说明：
ANSI：美国国家标准协会，系统预设的标准文字储存格式。简体中文编码GB2312，实际上它是ＡＮＳＩ的一个代码]]></description><category></category></item><item><title><![CDATA[在cmd上一直报javac不是内部或外部命令的详解及原理]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109590981</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109590981</guid><author>char56789</author><pubDate>Tue, 10 Nov 2020 07:06:27 +0800</pubDate><description><![CDATA[首先得确保你已经把jdk安装好了(此处不再啰嗦)，进入今天的主题。
其实归其本质，还是因为我们把环境变量没有配置好造成的(不要听这就感觉自己已经把环境变量配置好了，其实不然）。
解决方法也很简单
1，进入系统高级设置进行环境变量编辑页面
2，添加新的系统变量
添加JAVA_HOME变量，变量值就写自己的jdk路径，注意这里需要些绝对路径。例如：C:\Program Files\Java\jdk1.8.0_201
添加CLASSPATH变量，变量值就写  .;%JAVA_HOME%\lib\dt.jar;%J]]></description><category></category></item><item><title><![CDATA[详解中括号语法及点语法]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109559881</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109559881</guid><author>char56789</author><pubDate>Sun, 08 Nov 2020 15:19:00 +0800</pubDate><description><![CDATA[点语法:
点语法根据对象中的键来获取相应的值.
let obj = {
a: ‘a’
}
console.log(obj.a)// ‘a’
创建相应的键值对
obj.b = ‘b’
console.log(obj.b)// ‘b’
中括号语法:
中括号语法也能根据对象中的键来获取值.
let obj = {
a: ‘a’
}
console.log(obj[‘a’])// ‘a’
需要注意的是：中括号内的键一般使用引号.
由于对象内的键可以是特殊类型如：数字，布尔值这些取值时就不用引号.
中括号可以使用变量]]></description><category></category></item><item><title><![CDATA[详解懒加载原理及其应用]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109559531</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109559531</guid><author>char56789</author><pubDate>Sun, 08 Nov 2020 15:16:53 +0800</pubDate><description><![CDATA[什么叫懒加载，懒加载有是什么作用呢？
懒加载其实就是延时加载，即当对象需要用到的时候再去加载。
如何进行懒加载呢？
自从点语法出现以后，访问一个对象基本就类似于self.clickBtn或是[self.clickBtn],这都是调用的clickBtn的getter方法，因此就可以在getter方法中实现懒加载。
因此懒加载其实就是所谓的重写对的getter方法，当系统或开发者调用对象的getter方法时再去加载对象。
需要注意的是：重写getter方法时，先判断当前对象是否为空，为空的话再去实例化对象。
懒]]></description><category></category></item><item><title><![CDATA[详解禁用Cookie与Session的问题及其解决的方法]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109559104</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109559104</guid><author>char56789</author><pubDate>Sun, 08 Nov 2020 14:37:12 +0800</pubDate><description><![CDATA[Cookie与Session,一般被认为·是两个独立的的东西，Session采用的是在服务器端保持状态的方案，而Cookie采用的是在客户端保持状态的方案。但为什么仅用了Cookie就不能得到Session呢？因为Session是用Session ID来确定的当前对话对应的服务器Session，而Session ID是通过Cookie来传递的，禁用Cookie相当于失去了Sesison ID,也就得不到Session了。
关于如何禁用Cookie?
1、启动IE;
　　2、在“工具”菜单上，单击“Inter]]></description><category></category></item><item><title><![CDATA[隐藏域在Ajax中的应用]]></title><link>https://blog.youkuaiyun.com/char56789/article/details/109558821</link><guid>https://blog.youkuaiyun.com/char56789/article/details/109558821</guid><author>char56789</author><pubDate>Sun, 08 Nov 2020 14:19:49 +0800</pubDate><description><![CDATA[话不多说直接上代码
以下是利用隐藏iframe实现的ajax:
index.htm

    
    
    
        
        
        
        
        
ajax.htm

    
    
    
        
    

现在我们再来分析这个隐藏域究竟是什么呢？
隐藏域就是用来收集和发送信息的不可见元素，对于网页来的访问者来说，隐藏域是看不见的。但是在与服务器进行数据交互式时隐藏域就会将信息(用你设置时定义的名称和值)发送到服务器上。
我们在什]]></description><category></category></item></channel></rss>