アンドロイド/IOSベースの資産束
3568 ワード
ネイティブに対してコードを実行するには2つの方法があります.
Platformモジュールを使用する. Platform-specificファイル拡張子を使用する. これらの2つのアプローチを使用して、プラットフォーム固有のローカル資産をバンドルし、どちらが良いかを検証します.
プラットフォームモジュールを使用して以下のコードスニペットでは、イメージをAndroid/IOSに基づいてレンダリングします.これは期待通りに動作するが、この方法を用いる欠点がある.
アプリ.js
この欠点を避けるために、必要なイメージだけを束ねるプラットフォーム特有のファイル拡張メソッドを使用します.
ネイティブファイルは、ファイルがあるときに検出されます.IOS.または.アンドロイド.他のコンポーネントから必要なときに関連するプラットフォームファイルを拡張して読み込む.
この例を実行するには、2つのファイルimagefileを作成します.アンドロイド.jsとimagefileIOS.拡張子なしでファイル名をインポートします.
imagefileアンドロイド.js
Platformモジュールを使用する
プラットフォームモジュールの使用
プラットフォームモジュールを使用して以下のコードスニペットでは、イメージをAndroid/IOSに基づいてレンダリングします.これは期待通りに動作するが、この方法を用いる欠点がある.
アプリ.js
import { Platform, Image } from 'react-native';
var icon = Platform.OS === 'ios'
? require('./ios.png')
: require('./android.png');
<Image source={icon} />;
ここでの欠点は、両方のイメージ(IOS . pngとAndroid . png)が両方に存在することです.APKと.IPAファイル.これは、1つの画像の代わりに、束サイズを増加させる.プラットフォーム固有のファイル拡張子の使用
この欠点を避けるために、必要なイメージだけを束ねるプラットフォーム特有のファイル拡張メソッドを使用します.
ネイティブファイルは、ファイルがあるときに検出されます.IOS.または.アンドロイド.他のコンポーネントから必要なときに関連するプラットフォームファイルを拡張して読み込む.
この例を実行するには、2つのファイルimagefileを作成します.アンドロイド.jsとimagefileIOS.拡張子なしでファイル名をインポートします.
imagefileアンドロイド.js
export default from './android.png';
imagefileIOS.jsexport default from './ios.png';
アプリ.jsimport {Image} from 'react-native';
import imageFile from './imageFile';
<Image source={imageFile} />;
また、これは期待通りに、ボーナスとして必要な資産がバンドルされ、削減されます.APKと.IPAサイズ.Reference
この問題について(アンドロイド/IOSベースの資産束), 我々は、より多くの情報をここで見つけました https://dev.to/ramanathanmuthuraman/androidios-based-asset-bundling-react-native-emiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol