<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kelly_yml的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Kelly_yml</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Kelly_yml]]></copyright><item><title><![CDATA[【 Vue 3.0 初探 】]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/110245059</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/110245059</guid><author>Kelly_yml</author><pubDate>Sat, 28 Nov 2020 15:28:41 +0800</pubDate><description><![CDATA[我们都用脚手架进行初始化搭建，看看 vue2.0和vue3.0有什么区别
脚手架一键生成文件的区别：
1、入口文件的差别 ：

V2 ：

V3：

明显可见，vue 3.0 进行了初始化实例的优化,创建实例以及使用插件都采用连缀的写法，返回的是当前创建的实例对象。

2、路由的区别  ：
配置路由表对象，vue3.0和vue2.0没区别，区别在于router实例的创建方法。

V3

vue3.0中，不在再通过 new Router 来创建 router实例对象。而是通过 createRouter方法，来]]></description><category></category></item><item><title><![CDATA[【 Git 操作 】]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/110088057</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/110088057</guid><author>Kelly_yml</author><pubDate>Tue, 24 Nov 2020 17:20:32 +0800</pubDate><description><![CDATA[廖雪峰大神 Git 教程
Git-flow 包教不包会
阮一峰-常用 Git 命令清单
1、Git 简介
1.1 Git 是什么
目前世界上最先进的分布式版本控制系统
1.2 版本控制
链接
1.3 集中式 vs 分布式
• 集中式版本控制工具：
CVS、SVN、VSS、…
• 分布式版本控制工具：
Git、Mercurial、Bazaar、Darcs、…
1.4 Git 简史
1.5 Git 工作区、暂存区、版本库
工作区：写代码      --&gt; git add   --&gt; 暂存区     ]]></description><category></category></item><item><title><![CDATA[【 React 】Hook 的那些事！]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/109207547</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/109207547</guid><author>Kelly_yml</author><pubDate>Wed, 21 Oct 2020 21:55:37 +0800</pubDate><description><![CDATA[1、Hook 是什么

官方介绍：Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。

2、Hook 的Api

1、useState 设置类组件中的state

import React, { useState } from "react";
// useState: 可以在函数式组件中声明和修改状态
//函数式组件
function App() {
	//使用hook来定义state
	//获得state，和修改sta]]></description><category></category></item><item><title><![CDATA[【 React 】 React 中的公共状态管理 Redux ！]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/109187654</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/109187654</guid><author>Kelly_yml</author><pubDate>Tue, 20 Oct 2020 19:58:55 +0800</pubDate><description><![CDATA[Redux 的设计思想很简单，就两句话：
Web 应用是一个状态机，视图与状态是一一对应的。
所有的状态，保存在一个对象里面。
在组件化的应用中（比如react、vue2.0等），会有着大量的组件层级关系，深嵌套的组件与浅层父组件进行数据交互，变得十分繁琐困难。而redux，站在一个服务级别的角度，可以毫无阻碍地（这个得益于react的context机制，后面会讲解）将应用的状态传递到每一个层级的组件中。redux就相当于整个应用的管家。
redux有三大准则
1、单一数据源 ：
整个应用状态，都应该被存储]]></description><category></category></item><item><title><![CDATA[【 React 】几种共享数据的方式 ！]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/109186956</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/109186956</guid><author>Kelly_yml</author><pubDate>Tue, 20 Oct 2020 19:36:57 +0800</pubDate><description><![CDATA[React与Vue 数据通信相同，属于单向数据流，所以非父子组件共享数据用常规方法，代码会变得非常冗余。所以下面介绍了几种数据共享的方法。
1、React 提供的 Context  类似Vue中的 Provid Reject

初始化：React.createContext() 用来创建共享数据上下文对象

const defaultValue = {
	a:1,
	b:2,
	c:3
}
//创建对象并导出
const MyContext  = React.createContext(defaultVal]]></description><category></category></item><item><title><![CDATA[【 React 】三种 ref 的方式以及高阶组件必备 ref 转发]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/109184319</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/109184319</guid><author>Kelly_yml</author><pubDate>Tue, 20 Oct 2020 16:53:30 +0800</pubDate><description><![CDATA[在React中没有直接的API去操作DOM 结构，所以就要用到 ref 来获取DOM结构，常用的方法有以下三种

1、字符串类型的ref
顾名思义 ref接收的是一个字符串，如果你目前还在使用 this.refs.textInput 这种方式访问 refs ，建议用回调函数或 createRef API 的方式代替。因为会有BUG
&lt;div id="app"&gt;&lt;/div&gt;
&lt;script type="text/babel"&gt;
    //通过ref=""这种方式来去给d.]]></description><category></category></item><item><title><![CDATA[【 NodeJs 】 登录必备验证码的一种实现方式]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/109034976</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/109034976</guid><author>Kelly_yml</author><pubDate>Mon, 12 Oct 2020 19:40:04 +0800</pubDate><description><![CDATA[captcha 验证码插件
1、安装
npm i svg-captcha -D
2、使用
//引入插件
var svgCaptcha = require('svg-captcha');

//在某一请求中，将生成的验证码作为响应体返回给客户端

// 在服务端保存一份验证码，用于登录验证
var captchaInfo = {}
const captcha = (req, res) =&gt; {
    // 制作验证码
    const captcha = svgCaptcha.create({
  ]]></description><category></category></item><item><title><![CDATA[【 NodeJs 】服务端存储用户信息的三种方式]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/109004854</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/109004854</guid><author>Kelly_yml</author><pubDate>Mon, 12 Oct 2020 19:32:31 +0800</pubDate><description><![CDATA[引入：为啥要自行存储用户的信息？

因为客户端和服务端的交互必然用到http协议，但是http协议是一种无状态协议，用户第一次访问之后，是不存储用户信息的。在第二次访问的时候，不知道是你又来了。又要用户重新进行请求。所以要手动存储用户的信息。

一、cookies
原理：利用客户端发送请求时，自动携带cookie，来进行身份验证。
缺点：利用cookie来存储用户信息，由于cookie的大小有限，最多存储4K的信息，有时候无法满足需求。
1、安装
npm i cookies -S
2、使用
//所有操作均在]]></description><category></category></item><item><title><![CDATA[【 Vue 】看了这篇VueX，才算真正掌握 Vuex ！]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/108328589</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/108328589</guid><author>Kelly_yml</author><pubDate>Tue, 01 Sep 2020 14:38:14 +0800</pubDate><description><![CDATA[VueX（Vue状态管理模式）
一、初识Vuex
1.1 关于 Vuex
Vuex 是适用于在Vue项目开发时使用的状态管理工具。试想一下，如果在一个项目开发中频繁的使用组件传参的方式来同步data中的值，一旦项目变得很庞大，管理和维护这些值将是相当棘手的工作。为此，Vue为这些被多个组件频繁使用的值提供了一个统一管理的工具——Vuex。在具有Vuex的Vue项目中，我们只需要把这些值定义在Vuex中，即可在整个Vue项目的组件中使用。
1.2 Vuex 的安装
由于学Vuex的时候，已经学习了vue自动化]]></description><category></category></item><item><title><![CDATA[【  JS面试题 】关于闭包]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/108253368</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/108253368</guid><author>Kelly_yml</author><pubDate>Thu, 27 Aug 2020 09:49:07 +0800</pubDate><description><![CDATA[本文作者从一道经典的JS面试题，分享了自己对JS闭包的理解。
作者：IT程序狮
链接：https://www.jianshu.com/p/7ff589e78964
先看题目代码：
function fun(n,o) {
  console.log(o)
  return {
    fun:function(m){
      return fun(m,n);
    }
  };
}
var a = fun(0);  a.fun(1);  a.fun(2);  a.fun(3);//undefined,?]]></description><category></category></item><item><title><![CDATA[【 JS面试题 】 有关运算优先级和声明提升]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/108253257</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/108253257</guid><author>Kelly_yml</author><pubDate>Thu, 27 Aug 2020 09:42:04 +0800</pubDate><description><![CDATA[这里写自定义目录标题前端同学经常忽视的一个 JavaScript 面试题题目**第一问****第二问****第三问****第四问****第六问****第七问**欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出]]></description><category></category></item><item><title><![CDATA[【 Vue 】精神小伙详解Vue路由！]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/105312468</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/105312468</guid><author>Kelly_yml</author><pubDate>Sat, 04 Apr 2020 21:52:32 +0800</pubDate><description><![CDATA[Vue路由 - vueRouter
起步：


什么是路由？
 根据用户请求的路径来展示不同的页面或者返回不同的数据



路由的分类？
 前端路由：
 	根据用户请求不用的Url 来展示不同的页面或者数据，前端路由是不会涉及到后端请求的，以及页面不会进
 	行刷新的用户体验比较好，一般用来做单页面的开发，前端路由的底层原理：hashchange 和 popState 和
 	replaceSst...]]></description><category></category></item><item><title><![CDATA[【 Vue 】 震惊！小伙研究一晚上Vue中的组件传值，竟然……]]></title><link>https://blog.youkuaiyun.com/Kelly_yml/article/details/105298884</link><guid>https://blog.youkuaiyun.com/Kelly_yml/article/details/105298884</guid><author>Kelly_yml</author><pubDate>Sat, 04 Apr 2020 16:22:31 +0800</pubDate><description><![CDATA[详解Vue之组件传值
Vue中的组件传值，也叫组件之间的通讯，主要分为下面三种：

父传子 ：父组件向子组件传递数据
子传父 ：子组件向父组件传递数据
非父子组件传值 ：没有父子关系的组件之间传递数据。

下面分别详解。
一、父传子
父组件中传递：在子组件上绑定一个自定义属性，值为父组件向子组件传递的数据。

子组件中接收：在组件中通过属性props接收，props可以是一个对象，也可以是一个数组...]]></description><category></category></item></channel></rss>