<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[生活步步是坎坷，笑到最后是大哥]]></title><description><![CDATA[共同讨论，共同学习，共同进步]]></description><link>https://blog.youkuaiyun.com/Yesterdayw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Yesterdayw]]></copyright><item><title><![CDATA[react之redux]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/109211463</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/109211463</guid><author>Yesterdayw</author><pubDate>Wed, 21 Oct 2020 22:31:32 +0800</pubDate><description><![CDATA[一.redux
1.redux是什么？

2.什么情况下使用

3.redux核心
applyMiddleware:applyMiddelware(thunk)使可以发送异步action

combineReducers:合并多个reducer

createStore():创建包含指定reducer的store对象

​使用：createStore(  reducer  ,applyMiddelware(thunk))

store对象




内部会第一次调用reducer函数得到初始化
多个reduc]]></description><category></category></item><item><title><![CDATA[react之基础篇3]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/109211311</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/109211311</guid><author>Yesterdayw</author><pubDate>Wed, 21 Oct 2020 22:23:15 +0800</pubDate><description><![CDATA[一.组件间通信的两种方式
1.props方式

2.使用消息订阅–发布机制
订阅：绑定监听
发布：触发事件（发布事件）

3.redux
二.react-router
1.SPA

2.路由

npm i react-router-dom --save(使用的是web版本的)

router:路由器（用来注册路由的）

route:路由（是一个映射关系）



NavLink:类似a标签（存在一个属性：activeClassName用来设置样式类名）

Switch:表示匹配其中的一个路由

3.嵌套路由
]]></description><category></category></item><item><title><![CDATA[react之基础篇2]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/109190606</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/109190606</guid><author>Yesterdayw</author><pubDate>Wed, 21 Oct 2020 22:14:26 +0800</pubDate><description><![CDATA[一.受控组件与非受控组件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDcrvvRO-1603202913026)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1602753554188.png)]
受控组件：标签值改变直接改变组件的状态
非受控组件：类似用户名所对应标签
二。组件的生命周期
​																						父组件render()
[外链图片转存失败,源站可]]></description><category></category></item><item><title><![CDATA[react之基础篇1]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/109190828</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/109190828</guid><author>Yesterdayw</author><pubDate>Wed, 21 Oct 2020 22:07:42 +0800</pubDate><description><![CDATA[一.虚拟dom
创建方式：1.&lt;script type='text/javascript'&gt;

​					const getNew=react.createElement('name',{id},'content')

​					ReactDom.render(getNew,document.getElementById('id'));//渲染

&lt;/script&gt;

​		 2.&lt;script type='text/babel'&gt;//浏览器不能直接解析JSX代码，需]]></description><category></category></item><item><title><![CDATA[响应式布局之基础篇]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/108604407</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/108604407</guid><author>Yesterdayw</author><pubDate>Tue, 15 Sep 2020 17:34:34 +0800</pubDate><description><![CDATA[index.js
&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta charset="utf-8" /&gt;
		&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
		&lt;title&gt;&lt;/title&gt;
		&lt;link rel="stylesheet" href="css/index.css"&gt;
		&]]></description><category></category></item><item><title><![CDATA[微服务架构的认识]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/107396634</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/107396634</guid><author>Yesterdayw</author><pubDate>Thu, 16 Jul 2020 22:56:27 +0800</pubDate><description><![CDATA[https://www.zhihu.com/question/65502802

]]></description><category></category></item><item><title><![CDATA[项目中管理console.log]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/107135288</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/107135288</guid><author>Yesterdayw</author><pubDate>Sun, 05 Jul 2020 10:18:01 +0800</pubDate><description><![CDATA[一：1.线上项目中下载依赖
npm install babel-plugin-transform-remove-console --save-dev


2.在babel.config.js中plugins
  'transform-remove-console'  
  

二：关闭所有的console.log，保证console.log只在测试环境下
方案一：使用text编辑器将所有的console.log()替换成//console.log()
方案二：覆盖console.log
console.lo]]></description><category></category></item><item><title><![CDATA[Js封装extend方法]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/106797145</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/106797145</guid><author>Yesterdayw</author><pubDate>Tue, 16 Jun 2020 22:43:18 +0800</pubDate><description><![CDATA[&lt;script type="text/javascript"&gt;
		//$.extend
		//eg:var obj1={};var obj2={name:'张三'};var obj3={gender:'男'}
		//eg:  $.extend(obj1,obj2,obj3);将obj2与obj3一一遍历添加到obj1
		
		(function(global){
			function jquery(selectors){
				return new jquery.fn.init(se]]></description><category></category></item><item><title><![CDATA[JS库封装改进的简化]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/106790698</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/106790698</guid><author>Yesterdayw</author><pubDate>Tue, 16 Jun 2020 16:52:41 +0800</pubDate><description><![CDATA[&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;head&gt;
		&lt;meta charset="UTF-8"&gt;
		&lt;title&gt;&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;div&gt;1&lt;/div&gt;
		&lt;div&gt;2&lt;/div&gt;
		&lt;p&gt;3&lt;/p&gt;
		&lt;span id="spa"&gt;4&lt;/span&gt;
	&]]></description><category></category></item><item><title><![CDATA[JS库封装的改进]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/106790450</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/106790450</guid><author>Yesterdayw</author><pubDate>Tue, 16 Jun 2020 16:50:56 +0800</pubDate><description><![CDATA[改进的地方：

//jquery内部封装了一个Sizzle引擎来获取DOM元素document.querySelectorAll(selectors);
//jquery为了后续操作DOM元素方便，将dom元素放在了实例对象身上//类似数组，可以用for遍历，称为伪数组
for(var i=0;i&lt;elements.length;i++){
this[i]=elements[i];//给this创建属性从0开始的i
}

&lt;!DOCTYPE html&gt;
&lt;html&gt;
	&lt;]]></description><category></category></item><item><title><![CDATA[Js库的封装]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/106790142</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/106790142</guid><author>Yesterdayw</author><pubDate>Tue, 16 Jun 2020 16:38:56 +0800</pubDate><description><![CDATA[&lt;body&gt;
		&lt;div&gt;1&lt;/div&gt;
		&lt;div&gt;2&lt;/div&gt;
	&lt;/body&gt;
	&lt;script type="text/javascript"&gt;
	//定义一个自调函数
		(function(global){
			//global保留了window对象的引用
			//1.定义 jquery()方法,返回元素
			function jquery(selectors){
				//方法一：
			var e]]></description><category></category></item><item><title><![CDATA[JS中的同步及异步]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/106768078</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/106768078</guid><author>Yesterdayw</author><pubDate>Mon, 15 Jun 2020 22:58:51 +0800</pubDate><description><![CDATA[JavaScript是单线程，因此同个时间只能处理同个任务

所有任务都需要排队，前一个任务执行完，才能继续执行下一个任务。
但是，如果前一个任务的执行时间很长，比如文件的读取操作或ajax操作，
后一个任务就不得不等着，用户只能在那里干等着，严重影响用户体验。
 		
 	因此，JavaScript在设计的时候，就已经考虑到这个问题，
 	主线程可以完全不用等待文件的读取完毕或ajax的加载成功，可以先挂起处于等待中的任务，先运行排在后面的任务，
等到文件的读取或ajax有了结果后，再回过头执行挂起的任务]]></description><category></category></item><item><title><![CDATA[JS中的this指向]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/106759920</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/106759920</guid><author>Yesterdayw</author><pubDate>Mon, 15 Jun 2020 16:01:58 +0800</pubDate><description><![CDATA[首先我们应该明白js中的this是在代码运行期进行绑定的，这也是js中的this具备多重含义的原因。
window中的方法就是全局函数，
window中的属性就是全局变量。
在es6之前，this的指向取决于函数的调用方式，有以下几种调用方式：
1.函数调用
2.方法调用
3.构造函数的调用
4.上下文的调用方式
//函数调用方式
&lt;script&gt;
		//eg1:
		var obj={
			a:23,
			say:function(){
				console.log(this.a);
]]></description><category></category></item><item><title><![CDATA[jquery常用方法的原生]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/105023359</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/105023359</guid><author>Yesterdayw</author><pubDate>Sun, 22 Mar 2020 10:19:17 +0800</pubDate><description><![CDATA[/*jQuery封装*/
//$
window.$ = HTMLElement.prototype.$ = function(selector) {
	var elems = (this == window ? document : this).querySelectorAll(selector);
	return elems.length == 0 ? null : elems.length ...]]></description><category></category></item><item><title><![CDATA[phpStorm怎么解决502 bad gateway和404 not found问题]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/104699521</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/104699521</guid><author>Yesterdayw</author><pubDate>Fri, 06 Mar 2020 16:58:10 +0800</pubDate><description><![CDATA[地址

]]></description><category></category></item><item><title><![CDATA[Angular]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/103788963</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/103788963</guid><author>Yesterdayw</author><pubDate>Tue, 31 Dec 2019 21:56:49 +0800</pubDate><description><![CDATA[介绍
Angular.js是google开发者设计和开发的一套前端开发框架，帮助你简化前端开发的负担。
AngularJS 通过新的属性和表达式扩展了 HTML。
AngularJS 可以构建一个单一页面应用程序
AngularJS的优点：
1.良好的应用程序结构：
通常情况下，我们编写 JavaScript 没有明确的结构。虽然在编写小应用程序的时候没有问题，但这显然是不适合于大规模的应用程序。...]]></description><category></category></item><item><title><![CDATA[nodeJS+express实现Web的增删改查]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/100008325</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/100008325</guid><author>Yesterdayw</author><pubDate>Thu, 22 Aug 2019 10:30:28 +0800</pubDate><description><![CDATA[项目需要创建的文件
	index.js（创建的入口函数）
		router.js（存放路由相关模块）
		service.js（存放业务逻辑模块）
		data.json（用来存放数据的文件，存放的格式：[ obj1,obj2,.....]）
		views（存放模板文件 后缀为.art）
		public（存储静态文件）
		package,json(输入指令：npm init -y...]]></description><category></category></item><item><title><![CDATA[art-template及express框架]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/99981499</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/99981499</guid><author>Yesterdayw</author><pubDate>Wed, 21 Aug 2019 18:20:32 +0800</pubDate><description><![CDATA[一. 使用art-template模板时
	创建入口文件（index.js  注：所有的模板写在views目录中）
	需要搭建模板引擎：package.json(在控制台输入指令：npm init -y) 
	引入模板：art-template(指令：npm install art-template --save)
	在入口文件中添加模板引擎的代码段

// 模板引擎
var template =...]]></description><category></category></item><item><title><![CDATA[Web项目的搭建]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/99976989</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/99976989</guid><author>Yesterdayw</author><pubDate>Wed, 21 Aug 2019 17:15:22 +0800</pubDate><description><![CDATA[补充上一篇内容：
重点:  post参数处理 以及get参数处理
get参数处理===&gt; url模块
  url.parse()====&gt;将url字符串转换为  json类型的对象
  属性: query ===&gt;存放传输的数据
   true值  用来设置 query的格式 为 json格式
  
  url.format(); ====&gt;将json转换为字符串

pos...]]></description><category></category></item><item><title><![CDATA[post,get参数传递与获取]]></title><link>https://blog.youkuaiyun.com/Yesterdayw/article/details/99976252</link><guid>https://blog.youkuaiyun.com/Yesterdayw/article/details/99976252</guid><author>Yesterdayw</author><pubDate>Wed, 21 Aug 2019 17:03:13 +0800</pubDate><description><![CDATA[/*登录验证功能
*/
const http=require('http');
const url=require('url');
const querystring=require('querystring');
const ss=require('./06.js');
const path=require('path');
const fs=require('fs');
let readFil...]]></description><category></category></item></channel></rss>