react學習筆記

來源:互聯網
上載者:User

標籤:

React 學習
準備
  程式包控制台
    可以使用npm命令 npm install-package react.js
  nuget 搜尋 react 安裝對應版本的 reactjs.net
  添加///_reference.js來添加自動提示
API
  React
    建立組件類--ReactClass
      React.createClass(object specification)
      實現reader()方法
    建立ReactElement
      React.createElement(ReactClass,props,children...)
      ReactClass也可以是div,span
      屬性
        type,
        props,
        key,
        ref
    React.createFactory(string/ReactClass type)
      大量建立某組件執行個體時用
      React.DOM.ul() 內建的html標籤的工廠函數
    React.render--ReactComponent
      React.render(ReactElement element,DOMElement container,[function callback])
    React.unmountComponentAtNode(DOMElement container)
      移除,返回true移除成功,false是沒有組件移除
    React.renderToString(ReactElement element)
      渲染為html字串,僅在伺服器端用,有利於快速,seo
    React.renderToStaticMarkup(ReactElement element)
      渲染為html字串,和renderToString類似,但會去掉額外屬性支付,
    React.isValidElement(* object)
      判斷對象是否是一個 ReactElement
    React.DOM
      封裝dom:例如,React.DOM.div(null, ‘Hello World!‘)
    React.PropTypes
      包含公用類型,用於驗證props
    React.initializeTouchEvents(boolean shouldUseTouch)
      配置啟用處理觸摸(touch)時間
    React.Children
      處理 this.props.children
        React.Children.map(object children, function fn [, object context])
          每個子集調用fn,map會返回對象
        React.Children.forEach(object children, function fn [, object context])
          遍曆,不會返回對象
        React.Children.count(object children)
          返回組件總數
        React.Children.only(object children)
          返回僅有的子集,否則拋出異常

      預設prop值
        var ComponentWithDefaultProps = React.createClass({
          getDefaultProps: function() {
            return {
              value: ‘default value‘
            };
          }
        /* ... */
        });
      mixins 複用代碼(嵌入式),high order (擴充式)
  ReactComponent
    組件方法中this可以訪問執行個體,React之外只能用儲存React.render的傳回值訪問,其他組件內可以通過refs
    setState(object nextState[, function callback])
      合并nextState和當前state
      不要直接改變this.state,而用setState來更新並觸發ui更新
      setState之後,this.state並不一定馬上同步,
      調用後總是觸發重繪,除非實現了shouldComponentUpdate
    replaceState(object nextState[, function callback])
      類似setState,但之前的state將被刪除
    forceUpdate([function callback])
      將會導致調用render()
    getDOMNode() 返回DOMElement
      擷取dom節點
    isMounted()
      判斷是否渲染
    setProps(object nextProps[, function callback])
      設定屬性,觸發渲染,但不可用於子組件
    replaceProps(object nextProps[, function callback])、
      替換
  Component 方法
    render 渲染返回組件
    getInitialState 初始state值
    getDefaultProps 初始props值
    propTypes 檢驗prop類型
    mixins 混合共用組件行為
    statics 靜態方法
    displayName 調試資訊
    componentWillMount 掛載,渲染之前調用
    componentDidMount 掛載,渲染之後調用
    componentWillReceiveProps 更新,接受到新props時調用,初始不調用
    shouldComponentUpdate 更新,接受到新的props或state之後,渲染之前 調用,,初始不調用
    componentWillUpdate 更新,接受到新的props或state之前,初始不調用
    componentDidUpdate 更新,組件更新到dom後調用,初始不調用
    componentWillUnmount 移除,組件從dom中移除時調用,
  表單組件
    預設的html標籤的有對應的react組件
    互動屬性
    value 用於input,textarea組件
    checked 用於checkbox,radio
    selected 用於option
    onChange input textarea 的value變化時,input的checked改變時,option的selected改變時
    受限組件
    設定了value的input是受限組件,渲染的html不能變更value,需要在onChange裡用setState變更
    不受限組件
    沒有設定value或為null的input為不受限組件
    或者設定defaultValue 設定初始值,select也支援defaultvalue
  事件系統
    虛擬事件對象,
      事件處理器將會傳入虛擬事件對象的勢力,有和瀏覽器本地事件一樣的屬性和方法
      nativeEvent 擷取底層瀏覽器事件對象
      boolean bubbles
      boolean cancelable
      DOMEventTarget currentTarget
      boolean defaultPrevented
      number eventPhase
      boolean isTrusted
      DOMEvent nativeEvent
      void preventDefault()
      void stopPropagation()
      DOMEventTarget target
      number timeStamp
      string type
    支援的事件
      一般支援在事件冒泡階段觸發,
      要在捕獲階段觸發某個事件處理器,
      剪貼簿事件 onCopy onCut onPaste 屬性:DOMDataTransfer clipboardData
      鍵盤事件 onKeyDown onKeyPress onKeyUp 屬性:boolean altKey
        Number charCode
        boolean ctrlKey
        function getModifierState(key)
        String key
        Number keyCode
        String locale
        Number location
        boolean metaKey
        boolean repeat
        boolean shiftKey
        Number which
      焦時間點事件 onFocus onBlur 屬性:DOMEventTarget relatedTarget
    表單事件 onChange onInput onSubmit 屬性:
    滑鼠事件 onClick onDoubleClick onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp  屬性:boolean altKey
      Number button
      Number buttons
      Number clientX
      Number clientY
      boolean ctrlKey
      function getModifierState(key)
      boolean metaKey
      Number pageX
      Number pageY
      DOMEventTarget relatedTarget
      Number screenX
      Number screenY
      boolean shiftKey
    觸摸事件 onTouchCancel onTouchEnd onTouchMove onTouchStart
      渲染之前調用 React.initializeTouchEvents(true);
      屬性
        boolean altKey
        DOMTouchList changedTouches
        boolean ctrlKey
        function getModifierState(key)
        boolean metaKey
        boolean shiftKey
        DOMTouchList targetTouches
        DOMTouchList touches
      UI事件
        onScroll 屬性:Number detail DOMAbstractView view
      滑鼠滾輪滾動事件 onWheel 屬性:Number deltaMode Number deltaX Number deltaY Number deltaZ
  DOM的差異
    所有DOM的properties和attributes應該是駝峰命名,data-*和aria-*除外
    style屬性接收一個帶有駝峰命名的javascript對象,而不是一個css字串
    所有事件對象和w3c規範一致,包括冒泡
    onChange 事件觸發在欄位改變而不是失去焦點時
  非DOM屬性
    key 可選的唯一標識(兄弟節點中唯一,不需要全域唯一),組件在重新渲染時,順序被打亂後可能造成銷毀後重建,綁定key後能在檢測時確儲存在
    ref 綁定到reader輸出的一個組件,可以通過this.refs.refname來方式組件執行個體
    dangerouslySetInnerHTML 提供插入純html的能力


  標籤和屬性
    react支援所有html常用標籤
    svg元素, react-art 外掛程式支援渲染到canvas,svg貨vml(ie-8)
    支援所有的data-*,aria-*屬性,
    className,htmlFor
    駝峰命名,
    支援html標準屬性
    svg屬性

 

react學習筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.