<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aimolia8633的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/aimolia8633</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aimolia8633]]></copyright><item><title><![CDATA[React Hooks 实现react-redux]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132941</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132941</guid><author>aimolia8633</author><pubDate>Mon, 16 Sep 2019 15:28:00 +0800</pubDate><description><![CDATA[Redux 是目前 React 系统中最常用的数据管理工具，它落实并发扬了 Flux 的数据单向流动模式，被实践证明为一种成熟可用的模式。
尽管承受着一些非议，Redux 在 React 数据管理界的地位仍然没有被取代。我听到的针对 Redux 最多的非议是它需要遵守的规则和步骤太多，让人们觉得束手束脚。然而个人觉得这正是 Redux 的意思所在，项目大了，如果整体数据流动不遵守规则，...]]></description><category></category></item><item><title><![CDATA[React源码解析——ReactAPI]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132940</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132940</guid><author>aimolia8633</author><pubDate>Sun, 25 Aug 2019 12:23:00 +0800</pubDate><description><![CDATA[一、API背景
api的具体转化关系
可以通过到https://babeljs.io/repl/网站去将我们创建的Jsx进行实时的转译




const React = {
  Children: {
    map,
    forEach,
    count,
    toArray,
    only,
  },

  createRef,
...]]></description><category></category></item><item><title><![CDATA[WebPack系列之Proxy]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132932</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132932</guid><author>aimolia8633</author><pubDate>Wed, 15 Aug 2018 23:43:00 +0800</pubDate><description><![CDATA[背景
当我们直接去访问https://m.weibo.cn/api/config/list时由于端口、域名的不同产生了跨域,无法请求到资源数据.

分析
WebPack中devServer的proxy代理其实是集成了http-proxy-middleware

var express = require('express');
var proxy = require(...]]></description><category></category></item><item><title><![CDATA[通过ES6写法去对Redux部分源码解读]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132939</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132939</guid><author>aimolia8633</author><pubDate>Sat, 07 Jul 2018 00:47:00 +0800</pubDate><description><![CDATA[在Redux源码中主要有四个文件createStore,applyMiddleware,bindActionCreators,combineRedures
createStore.js
export default function createStore(reducer, preloadedState, enhancer),其中reducer函数是用来计算规则，preloadedS...]]></description><category></category></item><item><title><![CDATA[python drf+xadmin+react+dva+react-native+sentry+nginx 搭建前后端分离的博客完整平台]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132938</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132938</guid><author>aimolia8633</author><pubDate>Wed, 27 Jun 2018 19:43:00 +0800</pubDate><description><![CDATA[前言: 经过差不多半年的开发,搭建从前端到服务器,实现了前后端分离的一个集PC端、移动端的多端应用,实属不易,今天得空,好好写篇文章,记录这些天的成果.同时也做个分享.

演示网站地址: http://www.jimck.cn:8080
摘要
随着多媒体信息化进程的日新月益的变化，手机、电脑等多媒体的普及，人们时时刻刻都跟信息化设备打交道,于是萌生了一个想法,打算弄个个人博客网站,集成...]]></description><category></category></item><item><title><![CDATA[闲谈Hybrid]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132930</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132930</guid><author>aimolia8633</author><pubDate>Tue, 26 Jun 2018 13:32:00 +0800</pubDate><description><![CDATA[前言
当经常需要更换样式,产品迭代,那么我们应该考虑hybrid混合开发,上层使用Html&amp;Css&amp;JS做业务开发，底层透明化、上层多多样化，这种场景非常有利于前端介入，非常适合业务快速迭代.
webview
app有时需要去替换我们app的html、css……,文件非常多,需要我们在app启动的时候从服务器下载zip包,解压,这过程当然也需要进行版本管理,下载前可...]]></description><category></category></item><item><title><![CDATA[浅谈React、Vue 部分异步]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132928</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132928</guid><author>aimolia8633</author><pubDate>Mon, 25 Jun 2018 23:05:00 +0800</pubDate><description><![CDATA[React中的setState
setState为什么需要异步?

无法限制何时使用异步,多次连续使用setState
防止多次渲染,异步rendering不仅仅是性能上的优化，而且这可能是react组件模型在发生的根本性的改变


this.setState({
    inputTxt:''
})
console.log(this.state.inputTxt);...]]></description><category></category></item><item><title><![CDATA[浅谈React和VDom关系]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132936</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132936</guid><author>aimolia8633</author><pubDate>Mon, 25 Jun 2018 20:57:00 +0800</pubDate><description><![CDATA[组件化

组件的封装
组件的复用

组件的封装

视图
数据
视图和数据之间的变化逻辑


import React, {Component} from 'react';

export  default class List extends Component{
    constructor(props){
        super(props);...]]></description><category></category></item><item><title><![CDATA[浅析Vue原理(部分源码解析)]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132935</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132935</guid><author>aimolia8633</author><pubDate>Sun, 24 Jun 2018 23:16:00 +0800</pubDate><description><![CDATA[响应式
Object.defineProperty

Object.defineProperty(obj, prop, descriptor)  // 对象、属性、描述符


　　Object.defineProperty是es5新加的给对象属性设置描述符的方法,可以用来监听属性值的变化

 var obj ={};
    var _name ='张三'
    O...]]></description><category></category></item><item><title><![CDATA[浅谈Jquery和常用框架Vue变化]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132926</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132926</guid><author>aimolia8633</author><pubDate>Sun, 24 Jun 2018 22:08:00 +0800</pubDate><description><![CDATA[区别

Vue数据与视图的分离
Vue数据驱动视图


Jquery 简单示例:

&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;jquery&lt;/title&gt;
&lt;/head&g...]]></description><category></category></item><item><title><![CDATA[浅谈 Virtual DOM 的那些事]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132843</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132843</guid><author>aimolia8633</author><pubDate>Sun, 24 Jun 2018 12:11:00 +0800</pubDate><description><![CDATA[背景
我们都知道频繁的dom给我们带来的代价是昂贵的,例如我们有时候需要去更新Table 的部分数据,必须去重新重绘表格,这代价实在是太大了,相比于频繁的手动去操作dom而带来性能问题，vdom很好的将dom做了一层映射关系，进而将在我们本需要直接进行dom的一系列操作，映射到了操作vdom.
　　

&lt;!DOCTYPE html&gt;
&lt;html lang="e...]]></description><category></category></item><item><title><![CDATA[变量作用域与解构赋值]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132934</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132934</guid><author>aimolia8633</author><pubDate>Fri, 22 Jun 2018 23:31:00 +0800</pubDate><description><![CDATA[变量作用域
由于JavaScript的函数可以嵌套，此时，内部函数可以访问外部函数定义的变量，如果内部函数定义的变量和外部函数定义的变量相同，则内部函数的变量将“屏蔽”外部函数的变量
变量提升


function foo() {
    var x = 'Hello, ' + y;
    console.log(x);
    var y = 'siry';
}...]]></description><category></category></item><item><title><![CDATA[浅谈ES6基础——Promise]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132923</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132923</guid><author>aimolia8633</author><pubDate>Fri, 22 Jun 2018 23:13:00 +0800</pubDate><description><![CDATA[IMAGE加载
Callback Hell


function loadImg(src,callback,fail) {
var img = document.createElement('img');
img.onload = function() {
callback(img)
}
img.onerror = function() {
fail();
}
i...]]></description><category></category></item><item><title><![CDATA[ES6模块化]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132933</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132933</guid><author>aimolia8633</author><pubDate>Fri, 22 Jun 2018 22:37:00 +0800</pubDate><description><![CDATA[前言
语法:import export (注意有无default)
环境:babel编译ES6语法,模块化可用webpack 和rollup
ES6 Class本身是个语法糖,实际系统默认帮我们转成JS的构造函数

JS构造函数方式:


class Hello(x,y){
this.x=x;
this.y=y;
}
Hello.protoype.add=fu...]]></description><category></category></item><item><title><![CDATA[JS基础——浅谈前端页面渲染和性能优化]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132922</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132922</guid><author>aimolia8633</author><pubDate>Fri, 22 Jun 2018 13:47:00 +0800</pubDate><description><![CDATA[加载html中的静态资源
其中,加载静态资源的过程,一般为浏览器根据DNS服务器得到域名的IP地址,然后向这个IP的机器发送http请求,服务器收到、处理并返回http请求,浏览器得到返回http请求.
浏览器渲染页面的过程

根据HTML 结构生成DOM Tree
根据CSS 生成 CSSOM
将DOM和CSSOM结合生成RenderTree
浏览器根据RenderT...]]></description><category></category></item><item><title><![CDATA[JS模块化知识总结]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132920</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132920</guid><author>aimolia8633</author><pubDate>Fri, 22 Jun 2018 10:23:00 +0800</pubDate><description><![CDATA[背景

&lt;script src="a.js"&gt;&lt;/script&gt;
&lt;script src="b.js"&gt;&lt;/script&gt;
&lt;script src="c.js"&gt;&lt;/script&gt;
 ...........


js 文件之间相互依赖,变量会造成全局的污染,而且js之间的依赖顺序也会容易出错,容易造...]]></description><category></category></item><item><title><![CDATA[JS基础——事件操作总结]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132919</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132919</guid><author>aimolia8633</author><pubDate>Thu, 21 Jun 2018 22:25:00 +0800</pubDate><description><![CDATA[通用事件绑定



function bindEvent(elem,type,fn) {
　　elem.addEventListener(type,fn);
}
let a =document.getElementById('a');
bindEvent(a,'click',function(e){
　　e.preventDefault() //阻止浏览器默认行为,防...]]></description><category></category></item><item><title><![CDATA[对象API]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132917</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132917</guid><author>aimolia8633</author><pubDate>Thu, 21 Jun 2018 15:24:00 +0800</pubDate><description><![CDATA[遍历对象里的每个元素

var obj ={
　  a:32,
　  b:12,
     c :342      
}
for (const key of obj){
      if(obj.hasOwnProperty(key)){
         console.log(key,obj[key]);
    }  
}    


　　

转载于:h...]]></description><category></category></item><item><title><![CDATA[JS基础——数组API之数组操作(filter、map、some、every、sort)]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132931</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132931</guid><author>aimolia8633</author><pubDate>Thu, 21 Jun 2018 14:25:00 +0800</pubDate><description><![CDATA[var arr = [1,2,3,4];



forEach


arr.forEach((item,index,arr) =&gt; {
    console.log(item) //结果为1,2,3,4
})


filter


//filter过滤掉数组中不满足条件的值，返回一个新数组，不改变原数组的值。
var c=arr.filt...]]></description><category></category></item><item><title><![CDATA[Generator(生成器)]]></title><link>https://blog.youkuaiyun.com/aimolia8633/article/details/101132915</link><guid>https://blog.youkuaiyun.com/aimolia8633/article/details/101132915</guid><author>aimolia8633</author><pubDate>Thu, 21 Jun 2018 13:10:00 +0800</pubDate><description><![CDATA[序言

generator（生成器）是ES6引入的一种新的标准，可以用于处理异步请求，将异步回调的方式已同步的方式展示。generator和函数不同的是，generator由function*定义（注意多出的*号），并且，除了return语句，还可以用yield返回多次。

关于Generator的斐波那契数列


function fit(max) {
var a...]]></description><category></category></item></channel></rss>