<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘新修]]></title> 
<link>http://liuxinxiu.com:80/index.php</link> 
<description><![CDATA[刘新修的个人博客 (Liuxinxiu'S Blog)]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘新修]]></copyright>
<item>
<link>http://liuxinxiu.com:80/react/</link>
<title><![CDATA[React 速记]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[H5/JS/CSS]]></category>
<pubDate>Fri, 23 Sep 2016 13:06:10 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/react/</guid> 
<description>
<![CDATA[ 
	<p>使用ES5&#124;&#124;ES6 -- 输入文件示例 [调用所依赖的模块]：</p><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="comment">/****** ES5调用依赖模块[require]被打包会自动生成关联代码 ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">var</span><span> MyComponent = require(</span><span class="string">'./components/movie-list'</span><span>);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span><span class="comment">/****** ES6调用依赖模块 ******/</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="keyword">import</span><span> MyComponent from </span><span class="string">'./components/movie-list'</span><span>;&nbsp;&nbsp;</span></span></li></ol></div><p>使用ES5&#124;&#124;ES6 -- 输出文件示例[输出给被依赖模块]：</p><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li><span class="comment">/****** ES5输出给router ******/</span></li><li class="alt">module.exports=DemoComponent;</li><li class="alt">&nbsp;</li><li class="alt"><span><span class="comment">/****** ES6输出给router ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="comment">//export default DemoComponent;</span><span>&nbsp;&nbsp;</span></span></li><li>&nbsp;</li></ol></div><p>使用ES5 -- 创建一个组件：</p><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="comment">/****** 使用Es5语法 React.createClass 创建一个组件 ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">var</span><span> DemoComponent = React.createClass(&#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/****** 使用 getInitialState 的返回值作为数据的默认值(!return) ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;getInitialState: <span class="keyword">function</span><span> () &#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span> &#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loading: <span class="keyword">true</span><span>,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title: <span class="string">'我喜欢的电影'</span><span>,&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">// 注意这里将 外部传入的数据赋值给了 this.state</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;movies: []&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/****** 输出HTML模板，此处可以调用子组件******/</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;render: <span class="keyword">function</span><span> () &#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span> (&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div className=<span class="string">&quot;component-hello&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<span class="keyword">this</span><span>.state.title&#125;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&#125;);&nbsp;&nbsp;</span></li></ol></div><p>使用ES5 -- map遍历当前Array并调用渲染数据的[外部]子组件：</p><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="comment">/****** 使用Es5语法 遍历数组并调用外部子组件 ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">var</span><span> MoviesList=React.createClass(&#123;...&#125;);&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="keyword">var</span><span> dataHtml = movies.map(</span><span class="keyword">function</span><span>(movies)&#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp; <span class="keyword">return</span><span> (&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;MoviesList _movies=&#123;movies&#125;/&gt;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp; )&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;.bind(<span class="keyword">this</span><span>));</span><span class="comment">// 注意这里 bind(this) 修正了上下文</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">return</span><span> (&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp; &lt;ul&gt;&#123;dataHtml&#125;&lt;/ul&gt;&nbsp;&nbsp;</span></li><li><span>)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span><span class="comment">/****** 外部子组件map数组当做模板之用 ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">var</span><span> MoviesList = React.createClass(&#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;render: <span class="keyword">function</span><span> () &#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">// this.props 用于从组件外部传入数据</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span> _movies = </span><span class="keyword">this</span><span>.props._movies;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span> (&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li className=<span class="string">&quot;datali&quot;</span><span>&gt;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;_movies.id&#125;-&#123;_movies.name&#125;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/li&gt;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&#125;);&nbsp;&nbsp;</span></li></ol></div><p>使用ES5 -- map遍历当前Array并调用渲染数据的[内部]子组件：</p><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li class="alt"><span><span class="comment">/****** 使用Es5语法 遍历数组并调用内部子组件 ******/</span><span>&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">function</span><span> renderMovies(&#123;id,name&#125;)&#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp; <span class="keyword">return</span><span> &lt;li&gt;&#123;id&#125;-&#123;name&#125;&lt;/li&gt;;&nbsp;&nbsp;</span></span></li><li><span>&#125;&nbsp;&nbsp;</span></li><li class="alt"><span><span class="keyword">var</span><span> dataHtml = movies.map(renderMovies);&nbsp;&nbsp;</span></span></li><li><span><span class="keyword">return</span><span> (&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp; &lt;ul&gt;&#123;dataHtml&#125;&lt;/ul&gt;&nbsp;&nbsp;</span></li><li><span>)&nbsp;&nbsp;</span></li></ol></div><p>Ajax获取接口数据并设置到state :</p><div class="codeText"><div class="codeHead">JavaScript代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>componentDidMount()&#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;$.ajax(&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: <span class="string">'GET'</span><span>,&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: <span class="string">'http://code.liuxinxiu.com/php/Interface/Jsoncallback.php'</span><span>, //JSONP接口 </span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data: &#123;GUID:<span class="string">'1'</span><span>&#125;,&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType:<span class="string">'jsonp'</span><span>, </span><span class="comment">//告诉Ajax调用$jsonp</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jsonp: <span class="string">&quot;Jsoncallback&quot;</span><span>, </span><span class="comment">//zpeto-1.2支持自定义回调名</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success: <span class="keyword">function</span><span>(data)&#123;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span> yy=JSON.stringify(data);&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span> tlist=JSON.stringify(data.enttityList);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//console.log(tlist);</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//console.log(this.state.title+'22');</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">this</span><span>.setState(&#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comments:data.enttityList,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lottery:data.enttityList[0].lottery&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span> commentsStr=JSON.stringify(</span><span class="keyword">this</span><span>.state.comments);&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(<span class="string">&quot;&#92;n---&gt;&gt;commentsStr:&#92;n&quot;</span><span>+commentsStr); </span><span class="comment">//查看获取的数据</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//console.log(this.state.comments+'33')</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;.bind(<span class="keyword">this</span><span>),&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error: <span class="keyword">function</span><span>(xhr, type)&#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(xhr+type+<span class="string">'Ajax error!'</span><span>);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//console.log(this.state.comments+'++++--!!'); //ajax底下拿不到结果因为提前于异步</span><span>&nbsp;&nbsp;</span></span></li><li><span>&#125;&nbsp;&nbsp;</span></li></ol></div><p>react 的事件调用分类</p><div class="codeText"><div class="codeHead">C#代码</div><ol start="1" class="dp-c"><li class="alt"><span><span>触摸事件：onTouchCancel&#92;onTouchEnd&#92;onTouchMove&#92;onTouchStart&nbsp;&nbsp;</span></span></li><li><span>(只会在移动设备上接受)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>键盘事件：onKeyDown&#92;onKeyPress&#92;onKeyUp&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>剪切事件：onCopy&#92;onCut&#92;onPaste&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>表单事件：onChange&#92;onInput&#92;onSubmit&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>焦点事件：onFocus&#92;onBlur&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>UI元素：onScroll(移动设备是手指滚动和PC的鼠标滑动)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>滚动事件：onWheel(鼠标滚轮)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li><li><span>鼠标类型:onClick&#92;onContextMenu(右键)&#92;onDoubleClick&#92;onMouseDown&#92;onMouseEnter&#92;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;onMouseLeave&#92;onMouseMove&#92;onMouseOut&#92;onMouseOver&#92;onMouseUp&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;onDrag&#92;onDrop&#92;onDragEnd&#92;onDragEnter&#92;onDragExit&#92;onDragLeave&#92;onDragOver&#92;onDragStart&nbsp;&nbsp;</span></li></ol></div><p>&nbsp;</p><br/>Tags - <a href="http://liuxinxiu.com:80/tags/react/" rel="tag">react</a> , <a href="http://liuxinxiu.com:80/tags/setstate/" rel="tag">setstate</a> , <a href="http://liuxinxiu.com:80/tags/render/" rel="tag">render</a> , <a href="http://liuxinxiu.com:80/tags/props/" rel="tag">props</a> , <a href="http://liuxinxiu.com:80/tags/require/" rel="tag">require</a> , <a href="http://liuxinxiu.com:80/tags/module_exports/" rel="tag">module exports</a> , <a href="http://liuxinxiu.com:80/tags/import/" rel="tag">import</a> , <a href="http://liuxinxiu.com:80/tags/export/" rel="tag">export</a>
]]>
</description>
</item><item>
<link>http://liuxinxiu.com:80/react/#blogcomment</link>
<title><![CDATA[[评论] React 速记]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://liuxinxiu.com:80/react/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>