<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[橙煦媛的博客]]></title><description><![CDATA[治疗遗忘症]]></description><link>https://blog.youkuaiyun.com/u012937029</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012937029]]></copyright><item><title><![CDATA[React-Native学习指南]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/77750424</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/77750424</guid><author>u012937029</author><pubDate>Thu, 31 Aug 2017 17:47:21 +0800</pubDate><description><![CDATA[React-Native学习指南 
本指南汇集React-Native各类学习资源，给大家提供便利。同时还有Awesome React-Native系列https://github.com/jondot/awesome-react-native教程 
React-Native视频教程(部分免费) 
https://egghead.io/technologies/reactreact-native 官]]></description><category></category></item><item><title><![CDATA[git Merge 原理算法文章标题]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/77161584</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/77161584</guid><author>u012937029</author><pubDate>Mon, 14 Aug 2017 14:49:57 +0800</pubDate><description><![CDATA[最近碰到一系列问题，正好求知所问深入学习了下git 内部原理，东西比较多，先从git merge 说起，因为merge是所有版本控制系统中最最核心之一，本文通过讨论是2个commit 之间的合并 类似git merge C1 C2 ，更多的 git merge C1 C2 C3 ..Cn-1,Cn 合并也是一样的，他们主要是先将Cn 和 Cn-1先合并然后从后往前在递归合并所有。merge 常见误区]]></description><category></category></item><item><title><![CDATA[【React】ReactDOM.render源码分析]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/76696489</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/76696489</guid><author>u012937029</author><pubDate>Fri, 04 Aug 2017 23:44:11 +0800</pubDate><description><![CDATA[这是一个hello world，你造咩ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('example')
);ReactDOM.render()实际调用ReactMount.render()  /**
   * @param {ReactElement} nextElement 要插入到DOM中的组件]]></description><category></category></item><item><title><![CDATA[Webpack "Invalid Host Header"]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/76522969</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/76522969</guid><author>u012937029</author><pubDate>Tue, 01 Aug 2017 14:12:41 +0800</pubDate><description><![CDATA[error信息问题原因新版webpack-dev-server修改了一些东西，默认检查hostname。如果hostname不是配置内的，将不可访问。webpack-dev-server 更新的2.4.3 和 1.16.4 版本，除了常规的 BugFixes 和 Features，还特别注明了一项 Security Fix，并指出这很可能是一个 Breaking Change，但因为并没有涉及到架构]]></description><category></category></item><item><title><![CDATA[【React】什么时候使用shouldComponentUpdate方法?]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/76522930</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/76522930</guid><author>u012937029</author><pubDate>Tue, 01 Aug 2017 14:11:10 +0800</pubDate><description><![CDATA[你听说React是一个很快的前端框架，决定试一试。然后你找了个样例开始了React之旅，这时你注意到shouldComponentUpdate和PureRenderMixin，通过google找到一些技巧让React变得更快。但是React真的快吗？答案是React确实很快…不过是在某些时候。其他时候，你应该使用shouldComponentUpdate，但是其他时候是什么时候呢？如果只是一个是或否]]></description><category></category></item><item><title><![CDATA[React diff]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/76522686</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/76522686</guid><author>u012937029</author><pubDate>Tue, 01 Aug 2017 14:09:51 +0800</pubDate><description><![CDATA[传统diff算法传统diff算法通过循环递归对节点进行依次对比，效率低下，算法复杂度达到 O(n^3)，其中 n 是树中节点的总数let result = [];
const diffLeafs = function (beforeLeaf, afterLeaf) {
    // 获取较大节点树的长度
    let count = Math.max(beforeLeaf.children.len]]></description><category></category></item><item><title><![CDATA[git 总结+踩坑]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/75040567</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/75040567</guid><author>u012937029</author><pubDate>Wed, 12 Jul 2017 20:08:06 +0800</pubDate><description><![CDATA[git 总结+踩坑1. git push
git push origin 
上面命令表示，将当前分支推送到origin主机的对应分支。
git push 
如果当前分支只有一个追踪分支，那么主机名都可以省略; 
如果当前分支与多个主机存在追踪关系，那么这个时候-u选项会指定一个默认主机，这样后面就可以不加任何参数使用git push;
git push -u origin master 
如果当前分]]></description><category></category></item><item><title><![CDATA[浏览器地址栏输入url到显示页面步骤]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/71330627</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/71330627</guid><author>u012937029</author><pubDate>Sun, 07 May 2017 15:03:05 +0800</pubDate><description><![CDATA[浏览器地址栏输入url到显示页面步骤
查看缓存 
无缓存，发起请求 
有缓存，且可用（cache-control:max-age, expires过期时间），直接解析转码 
有缓存，过期（Etag+If-None-Match， Last-Modified+If-Modified-since），发起请求 
参考：http://blog.youkuaiyun.com/u012937029/article/detai]]></description><category></category></item><item><title><![CDATA[HTTP报头含义]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/71330611</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/71330611</guid><author>u012937029</author><pubDate>Sun, 07 May 2017 15:01:40 +0800</pubDate><description><![CDATA[Genneral 公共头部Request URl:请求的域名 
Request method:GET请求方式 
Status code: 200ok 
remote Address: 请求的远程IP地址Request 请求头Accept: 浏览器支持的MIME类型（媒体类型） 
Accept-Encoding: 支持的压缩类型 
Accept-Language: 支持的语言 
Cache-Contr]]></description><category></category></item><item><title><![CDATA[浏览器缓存：expires Cache-Control Last-Modified Etag]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/71330603</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/71330603</guid><author>u012937029</author><pubDate>Sun, 07 May 2017 15:00:45 +0800</pubDate><description><![CDATA[缓存机制
(http1.0中)检查expires过期时间， 
(http1.1中)检查Cache-Control的max-age，优先级更高 
Pragma(兼容http1.0, 在HTTP/1.1协议中，它的含义和Cache- Control相同) 
是否可以直接使用缓存资源？ 
可以使用：则返回200(from cache)，此时浏览器和服务器没有任何交互
已过期： 
(1)使用Last-Mod]]></description><category></category></item><item><title><![CDATA[CSS中的BFC]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/69389639</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/69389639</guid><author>u012937029</author><pubDate>Thu, 06 Apr 2017 14:54:20 +0800</pubDate><description><![CDATA[1.BFC是什么BFC(Block formatting context)直译为”块级格式化上下文”。它是一个独立的渲染区域， 它规定了内部的Block-level Box如何布局，并且与这个区域外部毫不相干。2.BFC布局规则
内部的Box会在垂直方向，一个接一个地放置。
Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠
每个元素的margin bo]]></description><category></category></item><item><title><![CDATA[querySelector系列和getElement系列区别]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/68946190</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/68946190</guid><author>u012937029</author><pubDate>Sat, 01 Apr 2017 16:59:49 +0800</pubDate><description><![CDATA[querySelector系列属于 W3C 中的 Selectors API 规范  
querySeletor()返回一个对象 
querySelectorAll()返回一个集合（NodeList） 
参数均为：css selector字符串获取页面I属性D为test的元素：
    document.querySelector("#test");
    document.querySelect]]></description><category></category></item><item><title><![CDATA[IFE Vue动态数据绑定]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/68942715</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/68942715</guid><author>u012937029</author><pubDate>Sat, 01 Apr 2017 11:34:21 +0800</pubDate><description><![CDATA[终于完成了Vue动态数据绑定这个任务，发现自己连渣都称不上，沫沫而已。。 
提交地址：https://github.com/touming123/IFE-Baidu/tree/master/vue1.给定任意一个对象，如何监听其属性的读取与变化ES中有两种属性：数据属性和访问器属性 
数据属性：configurable,enumerable,writabel,value 
访问器属性：(包含一对ge]]></description><category></category></item><item><title><![CDATA[遍历JS对象，包括enmuerable=false]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/67640779</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/67640779</guid><author>u012937029</author><pubDate>Tue, 28 Mar 2017 19:42:55 +0800</pubDate><description><![CDATA[可枚举性（enumerable）用来控制所描述的属性，是否将被包括在for…in循环之中。具体来说，如果一个属性的enumerable为false，下面三个操作不会取到该属性。 
* for..in循环 
* Object.keys方法 
* JSON.stringify方法// 为 Object 设置三个自定义属性（可枚举）
Object.prototype.userProp = 'userPro]]></description><category></category></item><item><title><![CDATA[重绘和重排]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/66974100</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/66974100</guid><author>u012937029</author><pubDate>Mon, 27 Mar 2017 17:39:46 +0800</pubDate><description><![CDATA[重绘重绘是一个元素外观的改变所触发的浏览器行为，例如改变visibility、outline、背景色等属性。浏览器会根据元素的新属性重新绘制，使元素呈现新的外观。重绘不会带来重新布局，并不一定伴随重排。重排重排是更明显的一种改变，可以理解为渲染树需要重新计算 
尽量减少重排次数和缩小重排的影响范围 
　1. DOM元素的几何属性变化　　当DOM元素的几何属性变化时，渲染树中的相关节点就会失效，浏览器]]></description><category></category></item><item><title><![CDATA[[LeetCode] 146. LRU Cache  java]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/65444388</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/65444388</guid><author>u012937029</author><pubDate>Thu, 23 Mar 2017 15:36:16 +0800</pubDate><description><![CDATA[/**146. LRU Cache
     * @date: 2016年10月27日
     * @description: http://blog.youkuaiyun.com/sbitswc/article/details/35899935
*/
private HashMap<Integer, DoubleLinkedListNode> map 
        = new HashMap<Integ]]></description><category></category></item><item><title><![CDATA[[LeetCode] 143. Reorder List   java]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/65444377</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/65444377</guid><author>u012937029</author><pubDate>Thu, 23 Mar 2017 15:35:51 +0800</pubDate><description><![CDATA[/**143. Reorder List 
     * @param head
     */
    public void reorderList(ListNode head) {
        if (!(head == null || head.next == null)) {
            ListNode fast = head;
            ListNode]]></description><category></category></item><item><title><![CDATA[[LeetCode] 142. Linked List Cycle II  java]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/65444369</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/65444369</guid><author>u012937029</author><pubDate>Thu, 23 Mar 2017 15:35:29 +0800</pubDate><description><![CDATA[/**142. Linked List Cycle II 
     * @param head
     * @return
     */
    public ListNode detectCycle(ListNode head) {
        if (head == null || head.next == null) {
            return null;]]></description><category></category></item><item><title><![CDATA[[LeetCode] 141. Linked List Cycle  java]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/65444361</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/65444361</guid><author>u012937029</author><pubDate>Thu, 23 Mar 2017 15:35:09 +0800</pubDate><description><![CDATA[/**141. Linked List Cycle
     * @param head
     * @return 判断链表是否有环
     */
    public boolean hasCycle(ListNode head) {
        if (head == null || head.next == null) {
            return false;]]></description><category></category></item><item><title><![CDATA[[LeetCode] 138. Copy List with Random Pointer  java]]></title><link>https://blog.youkuaiyun.com/u012937029/article/details/65444353</link><guid>https://blog.youkuaiyun.com/u012937029/article/details/65444353</guid><author>u012937029</author><pubDate>Thu, 23 Mar 2017 15:34:43 +0800</pubDate><description><![CDATA[/**138. Copy List with Random Pointer
     * @param head
     * @return 深度复制一个链表，使用重新分配内存保存新的
     */
    public RandomListNode copyRandomList(RandomListNode head) {
        if (head == null || head.ne]]></description><category></category></item></channel></rss>