ReactNative之解決文件導(dǎo)入路徑問(wèn)題

前言

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

如果喜歡我的文章,可以關(guān)注我微博:袁崢Seemygo

ReactNative之解決文件導(dǎo)入路徑問(wèn)題

RN文件路徑問(wèn)題

  • 在RN開(kāi)發(fā)中,可能相對(duì)于原生iOS開(kāi)發(fā)最麻煩的,就是導(dǎo)入自定義的組件
  • iOS中,導(dǎo)入自定義類,直接導(dǎo)入頭文件就好了,不需要關(guān)心路徑
  • RN中,每次導(dǎo)入自定義組件,都需要描述該組件的相對(duì)路徑,這個(gè)比較浪費(fèi)時(shí)間

解決RN文件路徑問(wèn)題

  • ReactNative提供了一個(gè)關(guān)鍵字@providesModule,可以解決文件路徑問(wèn)題,以后只要有這個(gè)關(guān)鍵字,導(dǎo)入組件就可以不需要路徑,直接類名就好了

  • @providesModule使用

  • 在文件的頂部,嵌套一個(gè)多行注釋,把@providesModule放在注釋里,@providesModule后添加類名,以后就直接使用類名就能導(dǎo)入了。

  • 注意點(diǎn),帶有@providesModule的多行注釋,一定要是文件的第一個(gè)多行注釋。

/**
 * @providesModule Common
 */

import {
    Dimensions
} from 'react-native';

export default class Common {

    static bgColor = 'rgb(232,232,232)';

    static screenW = Dimensions.get('window').width;

    static screenH = Dimensions.get('window').height;
}
  • 外界使用Common
// 以前需要這樣
// import Common from './../Common/Common'

// 現(xiàn)在可以直接用類名
import Common from 'Common'

使用@providesModule注意點(diǎn)

  • 前端在設(shè)計(jì)時(shí)候引入路徑是必要的。可以很明確文件位置,無(wú)論調(diào)試還是維護(hù),都知道這個(gè)文件來(lái)源。如果全部通過(guò)非路徑導(dǎo)入,等想找這個(gè)文件的時(shí)候,就不知道這個(gè)文件在哪。
  • 當(dāng)然也能解決,使用cmd+shirt+o就能快速查找文件
  • 所以,只有在公用率較高的模塊,并未開(kāi)發(fā)者知道這些模塊是如何產(chǎn)生的情況下,再去使用。
  • 這種方式,只能在RN這種環(huán)境下用,不能用于前端的項(xiàng)目。

@providesModule原理

  • RN在打包腳本的時(shí)候會(huì)檢測(cè)該類型文件,并在整個(gè)項(xiàng)目文件查找到對(duì)應(yīng)文件替換成對(duì)應(yīng)的模塊代碼。打出來(lái)的包還是跟導(dǎo)入相對(duì)路徑是一樣的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 周杰倫 這么多年 聽(tīng)了你這么多首歌 從05年的夜曲到16年的告白氣球 從依然范特西到床邊故事 還想再淋一遍的下雨天...
    阿離克西斯閱讀 255評(píng)論 0 0
  • 《長(zhǎng)安西》 你雖然不在海邊 但你那浪漫譬如海浪 沁我心間 你雖然不如沙漠 但你那濃濃暖意 溫暖身邊 你雖然不復(fù)從前...
    向昕閱讀 251評(píng)論 0 0
  • 今天是線下晨跑第三周,天公不作美,但依然阻擋不了小伙伴們的熱情。雨中晨跑,無(wú)人機(jī)拍攝,學(xué)習(xí)制作海報(bào),還有早餐提供喲...
    南半球的貓閱讀 311評(píng)論 0 1

友情鏈接更多精彩內(nèi)容