<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[面具哥布林的博客]]></title><description><![CDATA[stay hungry，stay foolish]]></description><link>https://blog.youkuaiyun.com/oak160</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oak160]]></copyright><item><title><![CDATA[基于koa2 + mongoose 的简易后台架构]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/79571906</link><guid>https://blog.youkuaiyun.com/oak160/article/details/79571906</guid><author>oak160</author><pubDate>Thu, 15 Mar 2018 18:11:06 +0800</pubDate><description><![CDATA[1、安装



cnpm install koa --save //koa安装
cnpm install koa-bodyparser --save //koa的参数解析中间件
cnpm install koa2-cors --save //koa的跨域中间件
cnpm install koa-router --save //koa的路由映射
cnpm install mongodb --save...]]></description><category></category></item><item><title><![CDATA[mongodb的查询]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/79473427</link><guid>https://blog.youkuaiyun.com/oak160/article/details/79473427</guid><author>oak160</author><pubDate>Wed, 07 Mar 2018 16:41:50 +0800</pubDate><description><![CDATA[find

1、查询符合条件的所有文档



db.mongoTest.find({name:'jay'})

find的第一个参数为一个对象，如果为空，则查询该集合下的全部文档。

2、查询符合条件的文档，并只返回某个键。



db.mongoTest.find({name:'jay'},{fav:1})

find的第二个参数接受一个对象，用来返回的内容。如果键值为0，则返回除该键以外的文档...]]></description><category></category></item><item><title><![CDATA[mogondb的更新]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/79471271</link><guid>https://blog.youkuaiyun.com/oak160/article/details/79471271</guid><author>oak160</author><pubDate>Wed, 07 Mar 2018 14:57:50 +0800</pubDate><description><![CDATA[update ：1、插入某个值到某个文档中： 
方法1：var a = db.mongoTest.findOne({name:'jay'})
a.fav= ['music','milk']
db.mongoTest.update({"_id" : a._id},a)这种方法不可以多文档更新。方法2：使用修改器$set var b = ['music','milk']
db.mongoTest.upd]]></description><category></category></item><item><title><![CDATA[mongodb一些小的总结。]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/79468273</link><guid>https://blog.youkuaiyun.com/oak160/article/details/79468273</guid><author>oak160</author><pubDate>Wed, 07 Mar 2018 11:05:09 +0800</pubDate><description><![CDATA[1、启动数据库。

cd到mongodb安装目录下的bin。



mongob --dbpath xxxxx 

其中xxx为数据库地址。比如我的是E:\mongodb\data\db 。



2、可视界面。

推荐Robo 3T 
下载地址：https://robomongo.org/ 
在启动数据库后，直接运行Robo3T即可。 
Robo3T的基本使用教程： 
https://jingy...]]></description><category></category></item><item><title><![CDATA[一些开发过程中的思路。]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/79321056</link><guid>https://blog.youkuaiyun.com/oak160/article/details/79321056</guid><author>oak160</author><pubDate>Tue, 13 Feb 2018 12:52:55 +0800</pubDate><description><![CDATA[1.等宽瀑布流： 
 需要确定的是，等宽瀑布流必须用绝对定位来完成排版。 
*W为容器的宽度。 
* 给出N列，每一列的宽度相同。用大小为N的数组存好每一列当前的高度。 
* 列当前的高度 = 已有的高度 + 每一列的宽度 * 图片的高宽比。 当然如果里面不仅有图片那高度也要相应的加上去。 
* 数据来的时候，依次放进每一列，同时把当前列的高度计算好。 
* 难点在于，如何每次仅拿出N个数据？ 把...]]></description><category></category></item><item><title><![CDATA[react的componentWillReceiveProps(nextProps) {} 生命周期]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78873548</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78873548</guid><author>oak160</author><pubDate>Fri, 22 Dec 2017 15:12:20 +0800</pubDate><description><![CDATA[在react的componentWillReceiveProps(nextProps)生命周期中，可以在子组件的render函数执行前获取新的props，从而更新子组件自己的state。 
这样的好处是，可以将数据请求放在这里进行执行，需要传的参数则从componentWillReceiveProps(nextProps)中获取。而不必将所有的请求都放在父组件中。于是该请求只会在该组件渲染时才会发出]]></description><category></category></item><item><title><![CDATA[入坑R-N]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78759631</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78759631</guid><author>oak160</author><pubDate>Sat, 09 Dec 2017 15:49:54 +0800</pubDate><description><![CDATA[需要解决的问题有： 
1.fonticon的引入：https://segmentfault.com/a/1190000009939727 
2.路由以及路由的动画： 
3.块的滑动： 
4.redux在r-n上的变化： 
5.fetch的请求： 
6.在ios上使用http：]]></description><category></category></item><item><title><![CDATA[一个loading小动画]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78281642</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78281642</guid><author>oak160</author><pubDate>Thu, 19 Oct 2017 10:37:51 +0800</pubDate><description><![CDATA[//html
<div>
     <div class="point point1"></div>
     <div class="point point2"></div>
     <div class="point point3"></div>
     <div class="point point4"></div>
     <div class="point point5"></div]]></description><category></category></item><item><title><![CDATA[js事件中的onmouseout和onmouseleave]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78195619</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78195619</guid><author>oak160</author><pubDate>Tue, 10 Oct 2017 18:02:51 +0800</pubDate><description><![CDATA[写一个项目的过程中发现一个问题： 
鼠标监听A元素的onmouseout事件，结果当鼠标移到A元素里面的B元素时，事件也触发了。 
原因是因为：事件冒泡。 
当鼠标从A元素进入到B元素时，A也会触发自己的onmouseout事件，但是由于自己并没有绑定这个事件，因此B的onmouseout传递给了A元素，所以当进入B时，实际上就触发了A元素的onmouseout事件了。 
解决办法是使用onmous]]></description><category></category></item><item><title><![CDATA[draft.js--富文本编辑器框架的实践（二）]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78134444</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78134444</guid><author>oak160</author><pubDate>Fri, 29 Sep 2017 15:37:15 +0800</pubDate><description><![CDATA[续 上篇 《draft.js–富文本编辑器框架的实践（一）》
安装
初始化一个draft编辑器的实例
对编辑器进行样式修改
增加格式按钮
行渲染以及行样式修改
默认块以及块样式修改
格式以及对应格式按钮之间的高亮联系
修改默认块所对应的映射元素以及自定义块的元素渲染
插入行元素，如emoji表情
插入块元素，如图片或者视频
数据存储
数据回显
（八）修改默认块所对应的映射元素以及自定义块的元素渲染：]]></description><category></category></item><item><title><![CDATA[draft.js--富文本编辑器框架的实践（一）]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78130971</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78130971</guid><author>oak160</author><pubDate>Fri, 29 Sep 2017 10:02:15 +0800</pubDate><description><![CDATA[市面上大多数的富文本编辑器都是现成的，很难根据自己的需求进行无论是功能亦或是渲染格式的修改。 
而由脸书开源的这款draft.js在富文本编辑器中简直是一股清流般的存在。draft在英文中是“草稿”的意思，如它名字所言，它并不是一款现成的富文本编辑器，而是一款富文本编辑器框架，这意味着你可以在此基础上进行二次开发，写出适合你自己应用场景的富文本编辑器。 
下面会写出一些我个人对这款富文本编辑器的实践]]></description><category></category></item><item><title><![CDATA[redux配合react]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78048559</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78048559</guid><author>oak160</author><pubDate>Thu, 21 Sep 2017 10:05:02 +0800</pubDate><description><![CDATA[基本流程如下：第一步：安装npm install --save redux
npm install --save react-redux第二步：编写reducer/*下面这个方法是一个Reducer函数*/
//默认值
const defaultState = {
    userName:'lucyss',
};
function reducer(state = defaultState,acti]]></description><category></category></item><item><title><![CDATA[css的一些问题与细节]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/78030663</link><guid>https://blog.youkuaiyun.com/oak160/article/details/78030663</guid><author>oak160</author><pubDate>Tue, 19 Sep 2017 15:34:11 +0800</pubDate><description><![CDATA[1.弹性布局下，子内容超出长度不会自动换行怎么解决？]]></description><category></category></item><item><title><![CDATA[react的一些细节]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/77989016</link><guid>https://blog.youkuaiyun.com/oak160/article/details/77989016</guid><author>oak160</author><pubDate>Fri, 15 Sep 2017 10:41:15 +0800</pubDate><description><![CDATA[input增加disabled 属性后，所有的监听事件都无法继续监听了。]]></description><category></category></item><item><title><![CDATA[react+redux+react-router4配置过程]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/77935901</link><guid>https://blog.youkuaiyun.com/oak160/article/details/77935901</guid><author>oak160</author><pubDate>Mon, 11 Sep 2017 17:56:11 +0800</pubDate><description><![CDATA[1）创建react单页面应用npm install -g create-react-app
create-react-app my-app2）安装reduxnpm install --save redux
npm install --save react-redux3)安装react-router，现在用的是版本4，和之前的用法和配置方法都有所区别。npm install --save histor]]></description><category></category></item><item><title><![CDATA[养成良好的JS代码风格记录]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/77348507</link><guid>https://blog.youkuaiyun.com/oak160/article/details/77348507</guid><author>oak160</author><pubDate>Fri, 18 Aug 2017 00:41:23 +0800</pubDate><description><![CDATA[1.消除魔术字符串 
2.三元表达式格式：let a = (bool)
        ?a
        :b;]]></description><category></category></item><item><title><![CDATA[es6 笔记]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/77159069</link><guid>https://blog.youkuaiyun.com/oak160/article/details/77159069</guid><author>oak160</author><pubDate>Mon, 14 Aug 2017 10:50:49 +0800</pubDate><description><![CDATA[1.整数和浮点数是同样的储存方法，所以3和3.0被视为同一个值.Number.isInteger(25) // true
Number.isInteger(25.0) // true为什么同样储存方式，就会被视为同一个值？]]></description><category></category></item><item><title><![CDATA[React笔记]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/77066459</link><guid>https://blog.youkuaiyun.com/oak160/article/details/77066459</guid><author>oak160</author><pubDate>Thu, 10 Aug 2017 17:32:21 +0800</pubDate><description><![CDATA[1、根据 React 的设计，所有的 DOM 变动，都先在虚拟 DOM 上发生，然后再将实际发生变动的部分，反映在真实 DOM上，这种算法叫做 DOM diff ，它可以极大提高网页的性能表现 
为什么？]]></description><category></category></item><item><title><![CDATA[JS的各种宽高的含义。]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/76983896</link><guid>https://blog.youkuaiyun.com/oak160/article/details/76983896</guid><author>oak160</author><pubDate>Wed, 09 Aug 2017 13:39:50 +0800</pubDate><description><![CDATA[遇到一个需求，写一个类QQ的文件列表，想把头部固定，下面内容滚动。暂时想到的办法是，头部元素<header></header>和内容元素<main></main>独立，然后每一列的元素<item></item> 放在<main></main> 里面，形成这样一个结构：<div class="container">
    <header></header>
    <main>
        <i]]></description><category></category></item><item><title><![CDATA[JQ中AJAX的isModified]]></title><link>https://blog.youkuaiyun.com/oak160/article/details/76451051</link><guid>https://blog.youkuaiyun.com/oak160/article/details/76451051</guid><author>oak160</author><pubDate>Mon, 31 Jul 2017 16:48:30 +0800</pubDate><description><![CDATA[项目中涉及到了一个加载模型的功能：前端请求回一个JSON文件，然后再对这个文件进行解析，在页面上解析出3D的模型。由于是3D模型，所以这个JSON文件很大。 
在第一次加载模型时，会花很多时间来进行下载，但如何实现在第二次加载且请求的JSON文件没有变化的情况下，不再花时间请求新的资源，同时满足如果有新的资源时，会正确的从服务器重新请求的这个需求？ 
解决方法之一是调用浏览器本地的缓存好的资源。JQ]]></description><category></category></item></channel></rss>