元芳,Es 5-6-7下的React你怎么看?

先来个干货,react 的render 循环数字

{
  for(var i=0;i<10;i++ ){
 return <div>sssssssss</div>
  }
}

肯定是不行的

可以写成

    {
          [...Array(10)].map((item,index) => {
         return <div>sssssssss</div>
            })
          }  

1。React 里面 export 出来的函数arguments.length 一直为0。

虽然你能回去传进去的值

//获取非行间样式
export const getStyle = (obj,attr) => {
  //arguments.length 居然为0
  console.log(arguments.length , obj , attr )
  if(obj.currentStyle){
    return obj.currentStyle[attr];
  }
  else{
    return document.defaultView.getComputedStyle(obj,false)[attr];
  }
}

2。创建组件

<code>es5</code>

var XXXXXX = React.createClass({

//好多钩子
componentDidMount : function() { },

 render: function() { return <a>liu</a> }
});

<code>es6</code>

import React , {Component} from 'react';

class Error404 extends Component {

  render(){
    return (<div>
      <h3 style={{fontSize : '60px', textAlign : 'center'}}>404 containers</h3>
      </div>)
  }

}

export default Error404

3.getDefaultProps和propTypes

<code>es5</code>

//设置默认属性
getDefaultProps: function() { return {title:'hehe'}; },
//属性校验器,表示必须是string
propTypes: { title:React.PropTypes.string, },

<code>es6</code>

//属性校验器,表示改属性必须是bool,否则报错 
xxxxxx.propTypes={title: React.PropTypes.bool}
//设置默认属性
xxxxxx.defaultProps={title:'hehe'};

<code>es7</code>

//一个关键字static。和其他语言越来越接近
static defaultProps(){
  return {
title : 'hehe'
}

4.ref 的区别

例如某个class

<ul ref='TileTab' className='TileTab' style={{display : 'none'}}>
    <li>1</li>
    <li>2</li>
</ul>

es5 以前应该是

//才是element 对象
React.getDOMNode(this.refs.TileTab) 

es 6 下面是

直接是element 对象,不需要getDOMNode
css(this.refs.TileTab,'display',dis)(this.refs.TileText,'border','1px solid rgba(27, 160, 225, 1)');

5.在记下`` 的使用。不记得叫什么,反正能代替''双单引号,在swift 中有个叫法是字符串插值

//swift 代码
let name = "liucunzhang"
let str = "hellow \\(name)"

js 代码

getLevel(num, str) {
    let b = false;
    let arrs = this.levels.slice(0, num - 1);
    arrs.map(arr => {
      arr.map(strs => {
        if (strs.substring(1, strs.length) === str) {
          b = true;
        }
      })
    })
    //看这里
    return `${!b ? 'on' : ''}${num % 3 === 0 && num < 12 ? ' m40' : ''}`
  }

目前就想到这5个区别!下面在记下React 的事件系统

React 的事件系统,都是些做过兼容的合成事件

React 标准化了事件对象,因此在不同的浏览器中都会有相同的属性。

如下的事件处理器在事件冒泡阶段触发。要在捕获阶段触发某个事件处理器,在事件名字后面追加 Capture
字符串;例如,使用 onClickCapture
而不是 onClick
来在捕获阶段处理点击事件。

剪贴板事件

事件名:
<code>
onCopy
onCut
onPaste</code>

属性:

<code>
DOMDataTransfer
clipboardData
</code>

键盘事件:

事件名:
<code>
onKeyDown
onKeyPress
onKeyUp
</code>

属性:
<code>boolean
altKeyNumber
charCodeboolean
ctrlKeyfunction
getModifierState(key)String
keyNumber
keyCodeString
localeNumber
locationboolean
metaKeyboolean
repeatboolean
shiftKeyNumber
which</code>

焦点事件

事件名:
<code>
onFocus
onBlur
</code>

属性:

<code>
DOMEventTarget
relatedTarget</code>

表单事件

事件名:
<code>
onChange
onInput
onSubmit
</code>

鼠标事件

事件名:
<code>
onClick
onDoubleClick
onDrag
onDragEnd
onDragEnter
onDragExit
onDragLeaveonDragOver
onDragStart
onDrop
onMouseDown
onMouseEnter
onMouseLeaveonMouseMove
onMouseOut
onMouseOver
onMouseUp
</code>

属性:
<code>
boolean
altKeyNumber
buttonNumber
buttonsNumber
clientXNumber
clientYboolean
ctrlKeyfunction
getModifierState(key)boolean
metaKeyNumber
pageXNumber
pageYDOMEventTarget
relatedTargetNumber
screenXNumber
screenYboolean
shiftKey

</code>

触摸事件

为了使触摸事件生效,在渲染所有组件之前调用React.initializeTouchEvents(true)

事件名:
<code>
onTouchCancel
onTouchEnd
onTouchMove
onTouchStart</code>

属性:
<code>boolean
altKeyDOMTouchList
changedTouchesboolean
ctrlKeyfunction
getModifierState(key)boolean
metaKeyboolean
shiftKeyDOMTouchList
targetTouchesDOMTouchList
touches</code>

UI 事件

事件名:
<code>onScroll</code>

属性:
<code>Number
detailDOMAbstractView
view
</code>

鼠标滚轮滚动事件

事件名:
<code>onWheel</code>

属性:
<code>Number
deltaModeNumber
deltaXNumber
deltaYNumber
deltaZ
</code>

好了,就这么多
END ~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,813评论 1 18
  • 本笔记基于React官方文档,当前React版本号为15.4.0。 1. 安装 1.1 尝试 开始之前可以先去co...
    Awey阅读 7,663评论 14 128
  • React Native之React速学教程(下) 本文出自《React Native学习笔记》系列文章。 Rea...
    CrazyCodeBoy阅读 1,158评论 0 117
  • 高度紧张带来的压力化成动力时,只会得到暂时的成效。想要长久下的持续,还需要放松的完成。 被裤子嘞得太紧一定走不了远...
    小馒头0601阅读 629评论 5 4
  • 面对亲人生病,无论他(她)是否被病痛折磨的苦不堪言,我们都会竭尽全力维持他们的生命,因为害怕失去,害怕面对离别而失...
    今天快乐阅读 167评论 0 0