ReactNative之模塊導出

前言

眼看很多公司都開始嘗試使用ReactNative,達到跨平臺開發(fā),最近也寫了很多文章,希望讓更多想了解的同學快速上手ReactNative.

如果喜歡我的文章,可以關注我微博:袁崢Seemygo

ReactNative之模塊導出

  • 什么是模塊?在JS開發(fā)中每一個文件可以稱為一個模塊,RN基于JS開發(fā),因此也是可以這么叫。

自定義組件導出

  • 在RN中,一般自定義組件都需要弄一個單獨文件,那怎么導出這個文件中的組件了。

  • 導出有兩種形式,一種叫默認組件,一種叫非默認組件,開發(fā)中一般使用默認組件

  • 在ES6中,一般都使用默認組件,ES5使用非默認組件,因為ES6支持import導出,ES5支持require。

  • 非默認組件定義

export  class CommonGroupListView extends Component
  • 外界如何引入非默認組件
import {CommonGroupItem} from '../CommonGroupListView/CommonGroupItem'
  • 默認組件定義
export default class CommonGroupListView extends Component
  • 外界如何引入默認組件
import CommonGroupItem from '../CommonGroupListView/CommonGroupItem'
  • 非默認組件需要加入{},比默認組件麻煩

自定義類(定義與導出)

  • 在RN中,有時候需要搞一個文件自定義類,一樣可以采用導出組件的方法導出自定義類
  • 自定義類與自定義組件的區(qū)別:
    • 組件繼承與Component
    • 自定義組件:必須使用class定義類,自定義類可以不使用class定義類

沒有對象屬性的自定義類 (定義與導出)

  • 如果一個自定義類,沒有對象屬性,都是類方法和類屬性,一般使用組件的定義方式(class)和導出方式(export default)。

export default class XMGRequest {
    static PostWithJsonParam(url,param,success,failure) {

        var paramStr = JSON.stringify(param);

        // post請求描述
        var requestDesc = {
            method:'POST',
            headers:{
                'Content-Type':'application/json'
            },
            body:paramStr
        };

        // 發(fā)送post請求
        fetch(url,requestDesc)
            .then((response)=>response.json())
            .then((json)=>{
                success(json);
            })
            .catch((error)=>{
                failure(error);
            })
    }

}
 
  • 外界如何引入自定義類
import XMGRequest from './XMGRequest'

有對象屬性的自定義類(定義與導出)

  • 如果一個自定義類,有對象屬性,通常不用使用組件的定義方式(class)和導出方式(export default),一般用function定義類,module.exports導出。

  • 因為使用class,沒法生成帶有屬性的構造方法,就不能在初始化對象的時候,給屬性賦值。

  • 導出方式:一般規(guī)范是module.exports,也可以使用export default。

  • class定義類與function定義類的區(qū)別:

  • 使用class定義類,在類中聲明任何屬性,和方法都會自動生成對象的屬性和方法.

  • 使用class定義類

export default class Person {

    // 需要創(chuàng)建對象調用
    // 定義屬性
    age = 0

    name = ''

    // 定義對象方法
    eat(){
       console.log('吃飯');
    }

}
  • 使用function類,要想定義屬性和方法,屬性和方法前面必須添加this.

function CommonGroupItem(sectionID,rowData) {

    this.sectionID = sectionID;

    this.rowData = rowData;

    this.eat = function () {

    }
}

  • 導出自定義類兩種方式
  • module.exports
function CommonGroupItem(sectionID,rowData) {

    this.sectionID = sectionID;

    this.rowData = rowData;

    this.eat = function () {

    }
}

module.exports = CommonGroupItem;
  • export default
export default function CommonGroupItem(sectionID,rowData) {

    this.sectionID = sectionID;

    this.rowData = rowData;

    this.eat = function () {

    }
}
  • 外界如何引入自定義類
import CommonGroupItem from '../CommonGroupListView/CommonGroupItem'
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,586評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,109評論 25 709
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • 1.計劃書的基本架構和內容: 封面:一個吸引讀者的封面,一些主要基本資料:活動名稱、主協辦、撰寫人員、撰寫日期等。...
    師連Roy閱讀 1,198評論 0 1
  • 今天的收獲
    愛莎199閱讀 245評論 0 0

友情鏈接更多精彩內容