React.JS
made by https://0x3d.site
GitHub - react-native-device-info/react-native-device-info: Device Information for React Native iOS and AndroidDevice Information for React Native iOS and Android - react-native-device-info/react-native-device-info
Visit Site
GitHub - react-native-device-info/react-native-device-info: Device Information for React Native iOS and Android
react-native-device-info
Device Information for React Native.
TOC
- Installation
- Linking
- Usage
- API
- Hooks & Events
- Troubleshooting
- Release Notes
- react-native-dom / react-native-web
v6 to v7 upgrade
Your iOS Podfile will need to move to an iOS 10 minimum. v7 of this module no longer supports iOS9.
Installation
Using npm:
npm install --save react-native-device-info
or using yarn:
yarn add react-native-device-info
Proguard
If you want to use Install Referrer tracking, you will need to add this config to your Proguard config
-keep class com.android.installreferrer.api.** {
*;
}
If you are experiencing issues with hasGms() on your release apks, please add the following rule to your Proguard config
-keep class com.google.android.gms.common.** {*;}
AndroidX Support
This module defaults to AndroidX you should configure your library versions similar to this in your android/build.gradle
file's "ext" block
...
ext {
// dependency versions
We have 3 options for deviceId:
//Option 1 (latest):
firebaseIidVersion = "19.0.1" // default: "19.0.1"
//Option 2 (legacy GooglePlay dependency but using AndroidX):
googlePlayServicesIidVersion = "17.0.0" // default: "17.0.0" - AndroidX
//Option 3 (legacy GooglePlay dependency before AndroidX):
googlePlayServicesIidVersion = "16.0.1"
//include as needed:
compileSdkVersion = "28" // default: 28 (28 is required for AndroidX)
targetSdkVersion = "28" // default: 28 (28 is required for AndroidX)
supportLibVersion = '1.0.2' // Use '28.0.0' or don't specify for old libraries, '1.0.2' or similar for AndroidX
mediaCompatVersion = '1.0.1' // Do not specify if using old libraries, specify '1.0.1' or similar for androidx.media:media dependency
supportV4Version = '1.0.0' // Do not specify if using old libraries, specify '1.0.0' or similar for androidx.legacy:legacy-support-v4 dependency
}
...
If you need non-AndroidX you will need to use the jetifier package in reverse mode, documentation available with that package.
Linking
Linking in native modules is a frequent source of trouble for new react-native developers, resulting in errors like "RNDeviceInfo is null" etc. For this reason automatic linking was implemented, and it should be used in your project.
Automatic linking is supported for all platforms (even windows on React native >= 0.63!)
Previous versions need to do manual linking. No support is offered for these previous react-native versions but you may refer to older versions of this README if you like. Upgrade to modern versions of react-native. Use upgrade-helper
tool on the internet if needed.
Usage
import DeviceInfo from 'react-native-device-info';
// or ES6+ destructured imports
import { getUniqueId, getManufacturer } from 'react-native-device-info';
API
Note that many APIs are platform-specific. If there is no implementation for a platform, then the "default" return values you will receive are "unknown"
for string, -1
for number, and false
for boolean. Arrays and Objects will be empty ([]
and {}
respectively).
Most APIs return a Promise but also have a corresponding API with Sync
on the end that operates synchronously. For example, you may prefer to call isCameraPresentSync()
during your app bootstrap to avoid async calls during the first parts of app startup.
Note about getUserAgentSync
While the asynchronous method getUserAgent
is available on both platforms, getUserAgentSync
is only supported on Android.
The example app in this repository shows an example usage of every single API, consult the example app if you have questions, and if you think you see a problem make sure you can reproduce it using the example app before reporting it, thank you.
Method | Return Type | iOS | Android | Windows | Web | visionOS |
---|---|---|---|---|---|---|
getAndroidId() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getApiLevel() | Promise<number> |
❌ | ✅ | ❌ | ❌ | ❌ |
getApplicationName() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getAvailableLocationProviders() | Promise<Object> |
✅ | ✅ | ❌ | ❌ | ✅ |
getBaseOs() | Promise<string> |
❌ | ✅ | ✅ | ✅ | ❌ |
getBuildId() | Promise<string> |
✅ | ✅ | ✅ | ❌ | ✅ |
getBatteryLevel() | Promise<number> |
✅ | ✅ | ✅ | ✅ | ✅ |
getBootloader() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getBrand() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getBuildNumber() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getBundleId() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
isCameraPresent() | Promise<boolean> |
❌ | ✅ | ✅ | ✅ | ❌ |
getCarrier() | Promise<string> |
✅ | ✅ | ❌ | ❌ | ❌ |
getCodename() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getDevice() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getDeviceId() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getDeviceType() | string |
✅ | ✅ | ❌ | ❌ | ✅ |
getDisplay() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getDeviceName() | Promise<string> |
✅ | ✅ | ✅ | ❌ | ✅ |
getDeviceToken() | Promise<string> |
✅ | ❌ | ❌ | ❌ | ✅ |
getFirstInstallTime() | Promise<number> |
✅ | ✅ | ✅ | ❌ | ✅ |
getFingerprint() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getFontScale() | Promise<number> |
✅ | ✅ | ✅ | ❌ | ❌ |
getFreeDiskStorage() | Promise<number> |
✅ | ✅ | ✅ | ✅ | ✅ |
getFreeDiskStorageOld() | Promise<number> |
✅ | ✅ | ✅ | ✅ | ✅ |
getHardware() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getHost() | Promise<string> |
❌ | ✅ | ✅ | ❌ | ❌ |
getHostNames() | Promise<string[]> |
❌ | ❌ | ✅ | ❌ | ❌ |
getIpAddress() | Promise<string> |
✅ | ✅ | ✅ | ❌ | ✅ |
getIncremental() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getInstallerPackageName() | Promise<string> |
✅ | ✅ | ✅ | ❌ | ✅ |
getInstallReferrer() | Promise<string> |
❌ | ✅ | ✅ | ✅ | ❌ |
getInstanceId() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getLastUpdateTime() | Promise<number> |
❌ | ✅ | ❌ | ❌ | ❌ |
getMacAddress() | Promise<string> |
✅ | ✅ | ❌ | ❌ | ✅ |
getManufacturer() | Promise<string> |
✅ | ✅ | ✅ | ❌ | ✅ |
getMaxMemory() | Promise<number> |
❌ | ✅ | ✅ | ✅ | ❌ |
getModel() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getPowerState() | Promise<object> |
✅ | ✅ | ✅ | ✅ | ✅ |
getProduct() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getPreviewSdkInt() | Promise<number> |
❌ | ✅ | ❌ | ❌ | ❌ |
getReadableVersion() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getSerialNumber() | Promise<string> |
❌ | ✅ | ✅ | ❌ | ❌ |
getSecurityPatch() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getStartupTime() | Promise<number> |
✅ | ✅ | ❌ | ❌ | ✅ |
getSystemAvailableFeatures() | Promise<string[]> |
❌ | ✅ | ❌ | ❌ | ❌ |
getSystemName() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getSystemVersion() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getTags() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getType() | Promise<string> |
❌ | ✅ | ❌ | ❌ | ❌ |
getTotalDiskCapacity() | Promise<number> |
✅ | ✅ | ✅ | ✅ | ✅ |
getTotalDiskCapacityOld() | Promise<number> |
✅ | ✅ | ✅ | ✅ | ✅ |
getTotalMemory() | Promise<number> |
✅ | ✅ | ❌ | ✅ | ✅ |
getUniqueId() | Promise<string> |
✅ | ✅ | ✅ | ❌ | ✅ |
getUsedMemory() | Promise<number> |
✅ | ✅ | ✅ | ✅ | ✅ |
getUserAgent() | Promise<string> |
✅ | ✅ | ❌ | ✅ | ✅ |
getUserAgentSync() | string |
❌ | ✅ | ❌ | ✅ | ❌ |
getVersion() | string |
✅ | ✅ | ✅ | ❌ | ✅ |
getBrightness() | Promise<number> |
✅ | ❌ | ❌ | ❌ | ❌ |
hasGms() | Promise<boolean> |
❌ | ✅ | ❌ | ❌ | ❌ |
hasHms() | Promise<boolean> |
❌ | ✅ | ❌ | ❌ | ❌ |
hasNotch() | boolean |
✅ | ✅ | ✅ | ❌ | ✅ |
hasDynamicIsland() | boolean |
✅ | ✅ | ✅ | ❌ | ✅ |
hasSystemFeature() | Promise<boolean> |
❌ | ✅ | ❌ | ❌ | ❌ |
isAirplaneMode() | Promise<boolean> |
❌ | ✅ | ❌ | ✅ | ❌ |
isBatteryCharging() | Promise<boolean> |
✅ | ✅ | ✅ | ✅ | ✅ |
isEmulator() | Promise<boolean> |
✅ | ✅ | ✅ | ❌ | ✅ |
isKeyboardConnected() | Promise<bool> |
❌ | ❌ | ✅ | ❌ | ❌ |
isLandscape() | Promise<boolean> |
✅ | ✅ | ✅ | ❌ | ✅ |
isLocationEnabled() | Promise<boolean> |
✅ | ✅ | ❌ | ✅ | ✅ |
isMouseConnected() | Promise<bool> |
❌ | ❌ | ✅ | ❌ | ❌ |
isHeadphonesConnected() | Promise<boolean> |
✅ | ✅ | ❌ | ❌ | ✅ |
isWiredHeadphonesConnected() | Promise<boolean> |
✅ | ✅ | ❌ | ❌ | ✅ |
isBluetoothHeadphonesConnected() | Promise<boolean> |
✅ | ✅ | ❌ | ❌ | ✅ |
isPinOrFingerprintSet() | Promise<boolean> |
✅ | ✅ | ✅ | ❌ | ✅ |
isTablet() | boolean |
✅ | ✅ | ✅ | ❌ | ✅ |
isLowRamDevice() | boolean |
❌ | ✅ | ❌ | ❌ | ❌ |
isDisplayZoomed() | boolean |
✅ | ❌ | ❌ | ❌ | ❌ |
isTabletMode() | Promise<bool> |
❌ | ❌ | ✅ | ❌ | ❌ |
supported32BitAbis() | Promise<string[]> |
❌ | ✅ | ❌ | ❌ | ❌ |
supported64BitAbis() | Promise<string[]> |
❌ | ✅ | ❌ | ❌ | ❌ |
supportedAbis() | Promise<string[]> |
✅ | ✅ | ✅ | ❌ | ✅ |
syncUniqueId() | Promise<string> |
✅ | ❌ | ❌ | ❌ | ✅ |
getSupportedMediaTypeList() | Promise<string[]> |
❌ | ✅ | ❌ | ❌ | ❌ |
getApiLevel()
Gets the API level.
Examples
DeviceInfo.getApiLevel().then((apiLevel) => {
// iOS: ?
// Android: 25
// Windows: ?
});
Notes
See API Levels
getAndroidId()
Gets the ANDROID_ID. See API documentation for appropriate use.
Examples
DeviceInfo.getAndroidId().then((androidId) => {
// androidId here
});
getApplicationName()
Gets the application name.
Examples
let appName = DeviceInfo.getApplicationName();
// AwesomeApp
getBaseOs()
The base OS build the product is based on.
Examples
DeviceInfo.getBaseOs().then((baseOs) => {
// "Windows", "Android" etc
});
getBatteryLevel()
Gets the battery level of the device as a float comprised between 0 and 1.
Examples
DeviceInfo.getBatteryLevel().then((batteryLevel) => {
// 0.759999
});
Notes
To be able to get actual battery level enable battery monitoring mode for application. Add this code:
[UIDevice currentDevice].batteryMonitoringEnabled = true;
to AppDelegate.m application:didFinishLaunchingWithOptions:
Returns -1 on the iOS Simulator
getBootloader()
The system bootloader version number.
Examples
DeviceInfo.getBootloader().then((bootloader) => {
// "mw8998-002.0069.00"
});
getBrand()
Gets the device brand.
Examples
let brand = DeviceInfo.getBrand();
// iOS: "Apple"
// Android: "xiaomi"
// Windows: ?
getBuildNumber()
Gets the application build number.
Examples
let buildNumber = DeviceInfo.getBuildNumber();
// iOS: "89"
// Android: "4"
// Windows: ?
getBundleId()
Gets the application bundle identifier.
Examples
let bundleId = DeviceInfo.getBundleId();
// "com.example.AwesomeApp"
isCameraPresent()
Tells if the device has any camera now.
Examples
DeviceInfo.isCameraPresent()
.then((isCameraPresent) => {
// true or false
})
.catch((cameraAccessException) => {
// is thrown if a camera device could not be queried or opened by the CameraManager on Android
});
Notes
- Hot add/remove of camera is supported.
- Returns the status of the physical presence of the camera. If camera present but your app don't have permissions to use it, isCameraPresent will still return the true
getCarrier()
Gets the carrier name (network operator).
Examples
DeviceInfo.getCarrier().then((carrier) => {
// "SOFTBANK"
});
getCodename()
The current development codename, or the string "REL" if this is a release build.
Examples
DeviceInfo.getCodename().then((codename) => {
// "REL"
});
getDevice()
The name of the industrial design.
Examples
DeviceInfo.getDevice().then((device) => {
// "walleye"
});
getDeviceId()
Gets the device ID.
Examples
let deviceId = DeviceInfo.getDeviceId();
// iOS: "iPhone7,2"
// Android: "goldfish"
// Windows: "Y3R94UC#AC4"
getDisplay()
A build ID string meant for displaying to the user.
Examples
DeviceInfo.getDisplay().then((display) => {
// "OPM2.171026.006.G1"
});
getDeviceName()
Gets the device name.
Examples
DeviceInfo.getDeviceName().then((deviceName) => {
// iOS: "Becca's iPhone 6"
// Android: ?
// Windows: ?
});
This used to require the android.permission.BLUETOOTH but the new implementation in v3 does not need it. You may remove that from your AndroidManifest.xml if you had it for this API. iOS 16 and greater require entitlements to access user-defined device name, otherwise a generic value is returned (ie. 'iPad', 'iPhone')
getDeviceToken()
Gets the device token (see DeviceCheck). Only available for iOS 11.0+ on real devices. This will reject the promise when getDeviceToken is not supported, be careful with exception handling.
Examples
DeviceInfo.getDeviceToken().then((deviceToken) => {
// iOS: "a2Jqsd0kanz..."
});
getFirstInstallTime()
Gets the time at which the app was first installed, in milliseconds.
Examples
DeviceInfo.getFirstInstallTime().then((firstInstallTime) => {
// Android: 1517681764528
});
getFingerprint()
A string that uniquely identifies this build.
Examples
DeviceInfo.getFingerprint().then((fingerprint) => {
// "google/walleye/walleye:8.1.0/OPM2.171026.006.G1/4820017:user/release-keys"
});
getFontScale()
Gets the device font scale. The font scale is the ratio of the current system font to the "normal" font size, so if normal text is 10pt and the system font is currently 15pt, the font scale would be 1.5 This can be used to determine if accessability settings has been changed for the device; you may want to re-layout certain views if the font scale is significantly larger ( > 2.0 )
Examples
DeviceInfo.getFontScale().then((fontScale) => {
// 1.2
});
getFreeDiskStorage()
Method that gets available storage size, in bytes, taking into account both root and data file systems calculation.
On iOS, this method accepts the following optional arguments:
'total'
: UsesvolumeAvailableCapacityKey
'important'
: UsesvolumeAvailableCapacityForImportantUsageKey
'opportunistic'
: UsesvolumeAvailableCapacityForOpportunisticUsageKey
For more details, refer to Apple Documentation on Checking Volume Storage Capacity.
Examples
DeviceInfo.getFreeDiskStorage().then((freeDiskStorage) => {
// Android: 17179869184
// iOS: 17179869184
});
DeviceInfo.getFreeDiskStorage('important').then((freeDiskStorage) => {
// iOS: 18198219342 (important storage)
});
Notes
The API used by this method for Android was changed in v6.0.0. The older version has been maintained below as getFreeDiskStorageOld()
. On iOS, getFreeDiskStorage()
and getFreeDiskStorageOld()
return the same value.
getFreeDiskStorageOld()
Old implementation of method that gets available storage size, in bytes.
Examples
DeviceInfo.getFreeDiskStorageOld().then((freeDiskStorage) => {
// Android: 17179869184
// iOS: 17179869184
});
Notes
From developer.android.com:
This method was deprecated in API level 29.
Return the primary shared/external storage directory.
Note: don't be confused by the word "external" here. This directory can better be thought as media/shared storage. It is a filesystem that can hold a relatively large amount of data and that is shared across all applications (does not enforce permissions). Traditionally this is an SD card, but it may also be implemented as built-in storage in a device that is distinct from the protected internal storage and can be mounted as a filesystem on a computer.
getHardware()
The name of the hardware (from the kernel command line or /proc).
Examples
DeviceInfo.getHardware().then(hardware => {
// "walleye"
});
getHost()
Hostname
Examples
DeviceInfo.getHost().then((host) => {
// "wprd10.hot.corp.google.com"
});
getIpAddress()
Deprecated Gets the device current IP address. (of wifi only) Switch to react-native-netinfo/netinfo or react-native-network-info
Examples
DeviceInfo.getIpAddress().then((ip) => {
// "92.168.32.44"
});
Android Permissions
Notes
Support for iOS was added in 0.22.0
getIncremental()
The internal value used by the underlying source control to represent this build.
Examples
DeviceInfo.getIncremental().then((incremental) => {
// "4820017"
});
getInstallerPackageName()
The internal value used by the underlying source control to represent this build.
Examples
DeviceInfo.getInstallerPackageName().then((installerPackageName) => {
// Play Store: "com.android.vending"
// Amazon: "com.amazon.venezia"
// Samsung App Store: "com.sec.android.app.samsungapps"
// iOS: "AppStore", "TestFlight", "Other"
});
getInstallReferrer()
Gets the referrer string upon application installation.
Examples
DeviceInfo.getInstallReferrer().then((installReferrer) => {
// If the app was installed from https://play.google.com/store/apps/details?id=com.myapp&referrer=my_install_referrer
// the result will be "my_install_referrer"
});
getInstanceId()
Gets the application instance ID.
This attempts to get an instance ID from these sources, in this order:
- a value under key
instanceId
in SharedPreferences filereact-native-device-info
- Firebase IID (if
firebaseBomVersion
orfirebaseIidVersion
is defined in gradle ext - deprecated) - GMS IID (if
googlePlayServicesIidVersion
orgooglePlayServicesVersion
is defined in gradle ext - deprecated) - a random UUID generated from java.util.UUID.randomUUID() and stored in SharedPreferences
If you are using the deprecated sources, the instance ID generated is stored in shared preferences so it will be stable during this major version of react-native-device-info.
In a future version of react-native-device-info, the Firebase IID and GMS IID implementations will be removed, and all future values will be the value (if any) stored in SharedPreferences, or a new random UUID that will then be stored and used for that app installation in the future.
Examples
DeviceInfo.getInstanceId().then((instanceId) => {
// Android: da4e0245-5d6c-402a-a07c-0c5349f229e2
});
Notes
getLastUpdateTime()
Gets the time at which the app was last updated, in milliseconds.
Examples
DeviceInfo.getLastUpdateTime().then((lastUpdateTime) => {
// Android: 1517681764992
});
getMacAddress()
Gets the network adapter MAC address.
Examples
DeviceInfo.getMacAddress().then((mac) => {
// "E5:12:D8:E5:69:97"
});
Android Permissions
Notes
iOS: This method always return "02:00:00:00:00:00" as retrieving the MAC address is disabled since iOS 7
getManufacturer()
Gets the device manufacturer.
Examples
DeviceInfo.getManufacturer().then((manufacturer) => {
// iOS: "Apple"
// Android: "Google"
// Windows: ?
});
getMaxMemory()
Returns the maximum amount of memory that the VM will attempt to use, in bytes.
Examples
DeviceInfo.getMaxMemory().then((maxMemory) => {
// 402653183
});
getModel()
Gets the device model.
iOS warning: The list with device names is maintained by the community and could lag new devices. It is recommended to use getDeviceId()
since it's more reliable and always up-to-date with new iOS devices. We do accept pull requests that add new iOS devices to the list with device names.
Examples
let model = DeviceInfo.getModel();
// iOS: ?
// Android: ?
// Windows: ?
getPhoneNumber()
The getPhoneNumber() has been removed. This method uses deprecated Android APIs. You can use react-native-sim-cards-manager to get the phone number.
getPowerState()
Gets the power state of the device including the battery level, whether it is plugged in, and if the system is currently operating in low power mode. Displays a warning on iOS if battery monitoring not enabled, or if attempted on an emulator (where monitoring is not possible)
Examples
DeviceInfo.getPowerState().then((state) => {
// {
// batteryLevel: 0.759999,
// batteryState: 'unplugged',
// lowPowerMode: false,
// }
});
getProduct()
The name of the overall product.
Examples
DeviceInfo.getProduct().then((product) => {
// "walleye"
});
getPreviewSdkInt()
The developer preview revision of a prerelease SDK.
Examples
DeviceInfo.getPreviewSdkInt().then((previewSdkInt) => {
// 0
});
getReadableVersion()
Gets the application human readable version (same as getVersion() + '.' + getBuildNumber())
Examples
let readableVersion = DeviceInfo.getReadableVersion();
// iOS: 1.0.1.32
// Android: 1.0.1.234
// Windows: ?
getSerialNumber()
Gets the device serial number. Will be 'unknown' in almost all cases unless you have a privileged app and you know what you're doing.
Examples
DeviceInfo.getSerialNumber().then((serialNumber) => {
// iOS: unknown
// Android: ? (maybe a serial number, if your app is privileged)
// Windows: ? (a serial number, if your app has the "capability smbios")
});
Notes
capability smbios
If you want to use this method in windows, you have to add smbios capability in your aplication. Please following this documentation for add the capability in your manifest file.
getSecurityPatch()
The user-visible security patch level.
Examples
DeviceInfo.getSecurityPatch().then((securityPatch) => {
// "2018-07-05"
});
getSystemName()
Gets the device OS name.
Examples
let systemName = DeviceInfo.getSystemName();
// iOS: "iOS" on newer iOS devices "iPhone OS" on older devices (including older iPad models), "iPadOS" for iPads using iPadOS 15.0 or higher.
// Android: "Android"
// Windows: ?
getStartupTime()
Gets the time at which the current app process was started, in milliseconds.
Examples
DeviceInfo.getStartupTime().then((startupTime) => {
// Android: 1517681764528
// iOS: 1517681764528
});
getSystemVersion()
Gets the device OS version.
Examples
let systemVersion = DeviceInfo.getSystemVersion();
// iOS: "11.0"
// Android: "7.1.1"
// Windows: ?
getBuildId()
Gets build number of the operating system.
Examples
DeviceInfo.getBuildId().then((buildId) => {
// iOS: "12A269"
// tvOS: not available
// Android: "13D15"
// Windows: not available
});
getTags()
Comma-separated tags describing the build.
Examples
DeviceInfo.getTags().then((tags) => {
// "release-keys, unsigned, debug",
});
getType()
The type of build.
Examples
DeviceInfo.getType().then((type) => {
// "user", "eng"
});
getTotalDiskCapacity()
Method that gets full disk storage size, in bytes, taking into account both root and data file systems calculation.
Examples
DeviceInfo.getTotalDiskCapacity().then((capacity) => {
// Android: 17179869184
// iOS: 17179869184
});
Notes
The API used by this method for Android was changed in v6.0.0. The older version has been maintained below as getTotalDiskCapacityOld()
. On iOS, getTotalDiskCapacity()
and getTotalDiskCapacityOld()
return the same value.
getTotalDiskCapacityOld()
Old implementation of method that gets full disk storage size, in bytes.
Examples
DeviceInfo.getTotalDiskCapacityOld().then((capacity) => {
// Android: 17179869184
// iOS: 17179869184
});
getTotalMemory()
Gets the device total memory, in bytes.
Examples
DeviceInfo.getTotalMemory().then((totalMemory) => {
// 1995018240
});
getUniqueId()
This identifier is considered sensitive information in some app stores (e.g. Huawei or Google Play) and may lead to your app being removed or rejected, if used without user consent or for unapproved purposes. Refer to store policies for more information (see notes below).
Gets the device unique ID.
On Android it is currently identical to getAndroidId()
in this module.
On iOS it uses the DeviceUID
uid identifier.
On Windows it uses Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation.id
.
Examples
DeviceInfo.getUniqueId().then((uniqueId) => {
// iOS: "FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9"
// Android: "dd96dec43fb81c97"
// Windows: "{2cf7cb3c-da7a-d508-0d7f-696bb51185b4}"
});
Notes
- iOS: This is
IDFV
or a random string if IDFV is unavaliable. Once UID is generated it is stored in iOS Keychain and NSUserDefaults. So it would stay the same even if you delete the app or reset IDFV. You can carefully consider it a persistent unique ID. It can be changed only in case someone manually override values in Keychain/NSUserDefaults or if Apple would change Keychain and NSUserDefaults implementations. Beware: The IDFV is calculated using your bundle identifier and thus will be different in app extensions.- android: Prior to Oreo, this id (ANDROID_ID) will always be the same once you set up your phone.
- android: Google Play policy, see "persistent device identifiers". Huawei - AppGallery Review Guidelines see "permanent device identifier" and "obtaining user consent".
syncUniqueId()
This method is intended for iOS.
This synchronizes uniqueId with IDFV
or sets new a random string.
On iOS it uses the DeviceUID
uid identifier.
On other platforms it just call getUniqueId()
in this module.
Examples
DeviceInfo.syncUniqueId().then((uniqueId) => {
// iOS: "FCDBD8EF-62FC-4ECB-B2F5-92C9E79AC7F9"
// Android: "dd96dec43fb81c97"
// Windows: ?
});
Notes
- If user moved or restored data from one iOS device to second iOS device then he will have two different devices with same
uniqueId
in Keychain/NSUserDefaults. User can callsyncUniqueId()
on new iOS device. That will update hisuniqueId
fromIDFV
or a random string.
getUsedMemory()
Gets the app memory usage, in bytes.
⚠️ A note from the Android docs.
Note: this method is only intended for debugging or building a user-facing process management UI.
Examples
DeviceInfo.getUsedMemory().then((usedMemory) => {
// 23452345
});
getSupportedMediaTypeList()
This method gets the list of supported media codecs.
Examples
DeviceInfo.getSupportedMediaTypeList().then((string[]) => {
// ["audio/mpeg", "audio/mp4a-latm", "audio/mp4a-latm", "audio/mp4a-latm", "audio/mp4a-latm", "video/avc", "video/3gpp", "video/hevc", "video/mp4v-es", "video/av01", "video/avc", "video/avc", "video/avc", "video/avc"]
});
getUserAgent()
Gets the device User Agent.
Examples
DeviceInfo.getUserAgent().then((userAgent) => {
// iOS: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143"
// tvOS: not available
// Android: "Mozilla/5.0 (Linux; Android 12; sdk_gphone64_arm64 Build/SE1A.220630.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/91.0.4472.114 Mobile Safari/537.36"
// Windows: ?
});
getVersion()
Gets the application version. Take into account that a version string is device/OS formatted and can contain any additional data (such as build number etc.). If you want to be sure about version format, you can use a regular expression to get the desired portion of the returned version string.
Examples
let version = DeviceInfo.getVersion();
// iOS: "1.0"
// Android: "1.0" or "1.0.2-alpha.12"
// Windows: ?
isAirplaneMode()
Tells if the device is in Airplane Mode.
Examples
DeviceInfo.isAirplaneMode().then((airplaneModeOn) => {
// false
});
Notes
- This only works if the remote debugger is disabled.
isBatteryCharging()
Tells if the battery is currently charging.
Examples
DeviceInfo.isBatteryCharging().then((isCharging) => {
// true or false
});
isEmulator()
Tells if the application is running in an emulator.
Examples
DeviceInfo.isEmulator().then((isEmulator) => {
// false
});
isKeyboardConnected()
Tells if the device has a keyboard connected.
Examples
let isKeyboardConnected = DeviceInfo.isKeyboardConnected();
// true
isPinOrFingerprintSet()
Tells if a PIN number or a fingerprint was set for the device.
Examples
DeviceInfo.isPinOrFingerprintSet().then((isPinOrFingerprintSet) => {
if (!isPinOrFingerprintSet) {
// ...
}
});
isTablet()
Tells if the device is a tablet.
Examples
let isTablet = DeviceInfo.isTablet();
// true
isLowRamDevice()
Tells if the device has low RAM.
Examples
let isLowRamDevice = DeviceInfo.isLowRamDevice();
// true
isDisplayZoomed()
Tells if the user changed Display Zoom to Zoomed
Examples
let isDisplayZoomed = DeviceInfo.isDisplayZoomed();
// true
isTabletMode()
Tells if the device is in tablet mode.
Examples
let isTabletMode = DeviceInfo.isTabletMode();
// true
isLandscape()
Tells if the device is currently in landscape mode.
Examples
DeviceInfo.isLandscape().then((isLandscape) => {
// true
});
isMouseConnected()
Tells if the device has a mouse connected.
Examples
let isMouseConnected = DeviceInfo.isMouseConnected();
// true
hasGms()
Tells if the device supports Google Mobile Services.
Examples
DeviceInfo.hasGms().then((hasGms) => {
// true
});
hasHms()
Tells if the device supports Huawei Mobile Services.
Examples
DeviceInfo.hasHms().then((hasHms) => {
// true
});
hasNotch()
Tells if the device has a notch.
Examples
let hasNotch = DeviceInfo.hasNotch();
// true
hasDynamicIsland()
Tells if the device has a dynamic island.
Examples
let hasDynamicIsland = DeviceInfo.hasDynamicIsland();
// true
getDeviceType()
Returns the device's type as a string, which will be one of:
Handset
Tablet
Tv
Desktop
GamingConsole
Headset
unknown
Examples
let type = DeviceInfo.getDeviceType();
// 'Handset'
supported32BitAbis()
An ordered list of 32 bit ABIs supported by this device.
Examples
DeviceInfo.supported32BitAbis().then((abis) => {
// ["armeabi-v7a", "armeabi"]
});
supported64BitAbis()
An ordered list of 64 bit ABIs supported by this device.
Examples
DeviceInfo.supported64BitAbis().then((abis) => {
// ["arm64-v8a"]
});
supportedAbis()
Returns a list of supported processor architecture version
Examples
DeviceInfo.supportedAbis().then((abis) => {
// [ "arm64 v8", "Intel x86-64h Haswell", "arm64-v8a", "armeabi-v7a", "armeabi", "win_x86", "win_arm", "win_x64" ]
});
hasSystemFeature(feature)
Tells if the device has a specific system feature.
Examples
DeviceInfo.hasSystemFeature('amazon.hardware.fire_tv').then((hasFeature) => {
// true or false
});
getSystemAvailableFeatures()
Returns a list of available system features on Android.
Examples
DeviceInfo.getSystemAvailableFeatures().then((features) => {
// ["android.software.backup", "android.hardware.screen.landscape", "android.hardware.wifi", ...]
});
isLocationEnabled()
Tells if the device has location services turned off at the device-level (NOT related to app-specific permissions)
Examples
DeviceInfo.isLocationEnabled().then((enabled) => {
// true or false
});
isHeadphonesConnected()
Tells if the device is connected to wired headset or bluetooth headphones
Examples
DeviceInfo.isHeadphonesConnected().then((enabled) => {
// true or false
});
isWiredHeadphonesConnected()
Tells if the device is connected to wired headset
Examples
DeviceInfo.isWiredHeadphonesConnected().then((enabled) => {
// true or false
});
isBluetoothHeadphonesConnected()
Tells if the device is connected to bluetooth headset
Examples
DeviceInfo.isBluetoothHeadphonesConnected().then((enabled) => {
// true or false
});
getAvailableLocationProviders()
Returns an object of platform-specfic location providers/servcies, with boolean
value whether or not they are currently available.
NOTE: This function requires access to the Location permission on Android
Android Example
DeviceInfo.getAvailableLocationProviders().then((providers) => {
// {
// gps: true
// network: true
// passive: true
// }
});
iOS Example
DeviceInfo.getAvailableLocationProviders().then((providers) => {
// {
// headingAvailable: false
// isRangingAvailable: false
// locationServicesEnabled: true
// significantLocationChangeMonitoringAvailable: true
// }
});
getBrightness()
Gets the current brightness level of the device's main screen. Currently iOS only. Returns a number between 0.0 and 1.0, inclusive.
Examples
DeviceInfo.getBrightness().then((brightness) => {
// iOS: 0.6
});
Hooks & Events
Supported in Windows, iOS & Android (web support for battery/charging-related APIs).
useBatteryLevel or RNDeviceInfo_batteryLevelDidChange
Fired when the battery level changes; sent no more frequently than once per minute.
Examples
import { useBatteryLevel } from 'react-native-device-info';
const batteryLevel = useBatteryLevel(); // 0.759999
<Text>{batteryLevel}</Text>;
import { NativeEventEmitter, NativeModules } from 'react-native';
const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);
deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelDidChange', (level) => {
// 0.759999
});
useBatteryLevelIsLow or RNDeviceInfo_batteryLevelIsLow
Fired when the battery level is considered low (multiple times untill charged)
Platform | Percentage |
---|---|
iOS | 20 |
Android | 15 |
Web | 20 |
Windows | 20 |
Examples
import { useBatteryLevelIsLow } from 'react-native-device-info';
const batteryLevelIsLow = useBatteryLevelIsLow(); // 0.19
<Text>{batteryLevelIsLow}</Text>;
import { NativeEventEmitter, NativeModules } from 'react-native';
const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);
deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', (level) => {
// 0.19
});
usePowerState or RNDeviceInfo_powerStateDidChange
Fired when the battery state changes or device enters in the power saving mode, for example when the device enters charging mode or is unplugged.
Examples
import { usePowerState } from 'react-native-device-info';
const powerState = usePowerState();
// {
// batteryLevel: 0.759999,
// batteryState: 'unplugged',
// lowPowerMode: false,
// }
<Text>{powerState}</Text>;
import { NativeEventEmitter, NativeModules } from 'react-native'
const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo)
deviceInfoEmitter.addListener('RNDeviceInfo_powerStateDidChange', { powerState } => {
// {
// batteryLevel: 0.759999,
// batteryState: 'unplugged',
// lowPowerMode: false,
// }
});
useFirstInstallTime
Gets the time at which the app was first installed, in milliseconds.
Example
import { useFirstInstallTime } from 'react-native-device-info';
const { loading, result } = useFirstInstallTime(); // { loading: true, result: 1517681764528}
<Text>{loading ? 'loading...' : result}</Text>;
useDeviceName
Gets the device name.
Example
import { useDeviceName } from 'react-native-device-info';
const { loading, result } = useDeviceName(); // { loading: true, result: "Becca's iPhone 6"}
<Text>{loading ? 'loading...' : result}</Text>;
useHasSystemFeature
Tells if the device has a specific system feature.
Example
import { useHasSystemFeature } from 'react-native-device-info';
const { loading, result } = useHasSystemFeature('amazon.hardware.fire_tv'); // { loading: true, result: false }
<Text>{loading ? 'loading...' : result}</Text>;
useIsEmulator
Get whether the application is running in an emulator.
Example
import { useIsEmulator } from 'react-native-device-info';
const { loading, result } = useIsEmulator(); // { loading: true, result: false }
<Text>{loading ? 'loading...' : result}</Text>;
useManufacturer
Gets the device manufacturer.
Example
import { useManufacturer } from 'react-native-device-info';
const { loading, result } = useManufacturer(); // { loading: true, result: "Apple"}
<Text>{loading ? 'loading...' : result}</Text>;
useIsHeadphonesConnected
Tells if the device is connected to wired headset or bluetooth headphones.
This hook subscribes to the event, RNDeviceInfo_headphoneConnectionDidChange
, and updates the result
field accordingly.
Example
import { useIsHeadphonesConnected } from 'react-native-device-info';
const { loading, result } = useIsHeadphonesConnected(); // { loading: true, result: false}
<Text>{loading ? 'loading...' : result}</Text>;
useIsWiredHeadphonesConnected
Tells if the device is connected to wired headset.
This hook subscribes to the event, RNDeviceInfo_headphoneWiredConnectionDidChange
, and updates the result
field accordingly.
Example
import { useIsWiredHeadphonesConnected } from 'react-native-device-info';
const { loading, result } = useIsWiredHeadphonesConnected(); // { loading: true, result: false}
<Text>{loading ? 'loading...' : result}</Text>;
useIsBluetoothHeadphonesConnected
Tells if the device is connected to bluetooth headphones.
This hook subscribes to the event, RNDeviceInfo_headphoneBluetoothConnectionDidChange
, and updates the result
field accordingly.
Example
import { useIsBluetoothHeadphonesConnected } from 'react-native-device-info';
const { loading, result } = useIsBluetoothHeadphonesConnected(); // { loading: true, result: false}
<Text>{loading ? 'loading...' : result}</Text>;
useBrightness
Gets the current brightness level of the device's main screen. Currently iOS only. Returns a number between 0.0 and 1.0, inclusive.
This hook subscribes to the event, RNDeviceInfo_brightnessDidChange
, and updates the brightness
field accordingly.
Example
import { useBrightness } from 'react-native-device-info';
const brightness = useBrightness(); // 0.46578987897654567
<Text>{brightness}</Text>;
import { NativeEventEmitter, NativeModules } from 'react-native';
const deviceInfoEmitter = new NativeEventEmitter(NativeModules.RNDeviceInfo);
deviceInfoEmitter.addListener('RNDeviceInfo_brightnessDidChange', (brightness) => {
// 0.46578987897654567
});
=======
Native interoperatibily
If you need to check for device type from the native side, you can use the following:
import com.learnium.resolver.DeviceTypeResolver
...
deviceTypeResolver = new DeviceTypeResolver(context);
...
//Check if the device is a Tablet:
if(deviceTypeResolver.isTablet){
...
}else{
...
}
Troubleshooting
When installing or using react-native-device-info
, you may encounter the following problems:
react-native-device-info
uses com.google.android.gms:play-services-gcm
to provide getInstanceId().
This can lead to conflicts when building the Android application.
If you're using a different version of com.google.android.gms:play-services-gcm
in your app, you can define the
googlePlayServicesVersion
gradle variable in your build.gradle
file to tell react-native-device-info
what version
it should require. See the example project included here for a sample.
If you're using a different library that conflicts with com.google.android.gms:play-services-gcm
, and you are certain you know what you are doing such that you will avoid version conflicts, you can simply
ignore this dependency in your gradle file:
compile(project(':react-native-device-info')) {
exclude group: 'com.google.android.gms'
}
Seems to be a bug caused by react-native link
. You can manually delete libRNDeviceInfo-tvOS.a
in Xcode -> [Your iOS build target] -> Build Phrases -> Link Binary with Libraries
.
This is a system level log that may be turned off by executing:
xcrun simctl spawn booted log config --mode "level:off" --subsystem com.apple.CoreTelephony
.
To undo the command, you can execute:
xcrun simctl spawn booted log config --mode "level:info" --subsystem com.apple.CoreTelephony
RN<=59 You may need to adjust your Podfile like this if you use Cocoapods and have undefined symbols or duplicate React definitions
target 'yourTargetName' do
# See http://facebook.github.io/react-native/docs/integration-with-existing-apps.html#configuring-cocoapods-dependencies
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge', # Include this for RN >= 0.47
'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
'RCTText',
'RCTNetwork',
'RCTWebSocket', # Needed for debugging
'RCTAnimation', # Needed for FlatList and animations running on native UI thread
# Add any other subspecs you want to use in your project
]
# Explicitly include Yoga if you are using RN >= 0.42.0
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
# Third party deps podspec link - you may have multiple pods here, just an example
pod 'RNDeviceInfo', path: '../node_modules/react-native-device-info'
end
# if you see errors about React duplicate definitions, this fixes it. The same works for yoga.
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
end
end
react-native-device-info
contains native code, and needs to be mocked. Jest Snapshot support may work though.
If you do not have a Jest Setup file configured, you should add the following to your Jest settings and create the jest.setup.js file in project root:
setupFiles: ['<rootDir>/jest.setup.js'];
You should then add the following to your Jest setup file to mock the DeviceInfo Native Module:
import mockRNDeviceInfo from 'react-native-device-info/jest/react-native-device-info-mock';
jest.mock('react-native-device-info', () => mockRNDeviceInfo);
Checkout the example project for more information.
Some of the APIs (like getBatteryState) will throw warnings in certain conditions like on tvOS or the iOS emulator. This won't be visible in production but even in development it may be irritating. It is useful to have the warnings because these devices return no state, and that can be surprising, leading to github support issues. The warnings is intended to educate you as a developer. If the warnings are troublesome you may try this in your code to suppress them:
import { LogBox } from 'react-native';
LogBox.ignoreLogs(['Battery state']);
Release Notes
See the CHANGELOG.md.
Contributing
Please see the contributing guide
.
react-native-dom
As a courtesy to developers, this library was made compatible in v0.21.6 with react-native-dom and react-native-web by providing an empty polyfill in order to avoid breaking builds.
Only getUserAgent() will return a correct value. All other API methods will return an "empty" value of its documented return type: 0
for numbers, ''
for strings, false
for booleans.
More Resourcesto explore the angular.
mail [email protected] to add your project or resources here 🔥.
- 1React Community – React
https://react.dev/community
The library for web and native user interfaces
- 2Patterns.dev
https://www.patterns.dev/
Learn JavaScript design and performance patterns for building more powerful web applications.
- 3React
https://react.dev/
React is the library for web and native user interfaces. Build user interfaces out of individual pieces called components written in JavaScript. React is designed to let you seamlessly combine components written by independent people, teams, and organizations.
- 4Quick Start – React
https://react.dev/learn
The library for web and native user interfaces
- 5Snack - React Native in the browser
https://snack.expo.dev/
Write code in Expo's online editor and instantly use it on your phone.
- 6React JavaScript Tutorial in Visual Studio Code
https://code.visualstudio.com/docs/nodejs/reactjs-tutorial
React JavaScript tutorial showing IntelliSense, debugging, and code navigation support in the Visual Studio Code editor.
- 7Overview · React Native
https://reactnative.dev/community/overview
The React Native Community
- 8React Native · Learn once, write anywhere
https://reactnative.dev/
A framework for building native apps using React
- 9React Conferences – React
https://react.dev/community/conferences
The library for web and native user interfaces
- 10React - CodeSandbox
https://codesandbox.io/s/new
React example starter project
- 11React friendly API wrapper around MapboxGL JS
https://github.com/visgl/react-map-gl
React friendly API wrapper around MapboxGL JS. Contribute to visgl/react-map-gl development by creating an account on GitHub.
- 12React components for Leaflet maps
https://github.com/PaulLeCam/react-leaflet
React components for Leaflet maps. Contribute to PaulLeCam/react-leaflet development by creating an account on GitHub.
- 13The visual editor for React
https://github.com/measuredco/puck
The visual editor for React. Contribute to measuredco/puck development by creating an account on GitHub.
- 14👀 Easily apply tilt hover effect on React components - lightweight/zero dependencies (3kB)
https://github.com/mkosir/react-parallax-tilt
👀 Easily apply tilt hover effect on React components - lightweight/zero dependencies (3kB) - mkosir/react-parallax-tilt
- 15Fast, easy and reliable testing for anything that runs in a browser.
https://github.com/cypress-io/cypress
Fast, easy and reliable testing for anything that runs in a browser. - cypress-io/cypress
- 16🇨🇭 A React renderer for Three.js
https://github.com/pmndrs/react-three-fiber
🇨🇭 A React renderer for Three.js. Contribute to pmndrs/react-three-fiber development by creating an account on GitHub.
- 17Create skeleton screens that automatically adapt to your app!
https://github.com/dvtng/react-loading-skeleton
Create skeleton screens that automatically adapt to your app! - dvtng/react-loading-skeleton
- 18Open source, production-ready animation and gesture library for React
https://github.com/framer/motion
Open source, production-ready animation and gesture library for React - framer/motion
- 19The recommended Code Splitting library for React ✂️✨
https://github.com/gregberge/loadable-components
The recommended Code Splitting library for React ✂️✨ - gregberge/loadable-components
- 20A collection of composable React components for building interactive data visualizations
https://github.com/FormidableLabs/victory
A collection of composable React components for building interactive data visualizations - FormidableLabs/victory
- 21TW Elements integration with React - Free Examples & Tutorial
https://tw-elements.com/docs/standard/integrations/react-integration/
This article shows you how to integrate React application with TW Elements. Free download, open source license.
- 22🤖 Fully typesafe Router for React (and friends) w/ built-in caching, 1st class search-param APIs, client-side cache integration and isomorphic rendering.
https://github.com/TanStack/router
🤖 Fully typesafe Router for React (and friends) w/ built-in caching, 1st class search-param APIs, client-side cache integration and isomorphic rendering. - TanStack/router
- 23🎥 Make videos programmatically with React
https://github.com/remotion-dev/remotion
🎥 Make videos programmatically with React. Contribute to remotion-dev/remotion development by creating an account on GitHub.
- 24The HTML touch slider carousel with the most native feeling you will get.
https://github.com/rcbyr/keen-slider
The HTML touch slider carousel with the most native feeling you will get. - rcbyr/keen-slider
- 25A JS library for predictable global state management
https://github.com/reduxjs/redux
A JS library for predictable global state management - reduxjs/redux
- 26Simple reusable React error boundary component
https://github.com/bvaughn/react-error-boundary
Simple reusable React error boundary component. Contribute to bvaughn/react-error-boundary development by creating an account on GitHub.
- 27Declarative routing for React
https://github.com/remix-run/react-router
Declarative routing for React. Contribute to remix-run/react-router development by creating an account on GitHub.
- 28Personal blog by Dan Abramov.
https://github.com/gaearon/overreacted.io
Personal blog by Dan Abramov. Contribute to gaearon/overreacted.io development by creating an account on GitHub.
- 29Next generation frontend tooling. It's fast!
https://github.com/vitejs/vite
Next generation frontend tooling. It's fast! Contribute to vitejs/vite development by creating an account on GitHub.
- 30React Hooks for Data Fetching
https://github.com/vercel/swr
React Hooks for Data Fetching. Contribute to vercel/swr development by creating an account on GitHub.
- 31📄 Create PDF files using React
https://github.com/diegomura/react-pdf
📄 Create PDF files using React. Contribute to diegomura/react-pdf development by creating an account on GitHub.
- 32nivo provides a rich set of dataviz components, built on top of the awesome d3 and React libraries
https://github.com/plouc/nivo
nivo provides a rich set of dataviz components, built on top of the awesome d3 and React libraries - plouc/nivo
- 33Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.
https://github.com/facebookexperimental/Recoil
Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features o...
- 34[ARCHIVE]: Expo Router has moved to expo/expo -- The File-based router for universal React Native apps
https://github.com/expo/router
[ARCHIVE]: Expo Router has moved to expo/expo -- The File-based router for universal React Native apps - expo/router
- 35🛡️ ⚛️ A simple, scalable, and powerful architecture for building production ready React applications.
https://github.com/alan2207/bulletproof-react
🛡️ ⚛️ A simple, scalable, and powerful architecture for building production ready React applications. - GitHub - alan2207/bulletproof-react: 🛡️ ⚛️ A simple, scalable, and powerful architecture for...
- 36The Select Component for React.js
https://github.com/JedWatson/react-select
The Select Component for React.js. Contribute to JedWatson/react-select development by creating an account on GitHub.
- 37Toolkit for building accessible web apps with React
https://github.com/ariakit/ariakit
Toolkit for building accessible web apps with React - ariakit/ariakit
- 38Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅
https://github.com/styled-components/styled-components
Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅 - styled-components/styled-components
- 39Create the next immutable state by mutating the current one
https://github.com/immerjs/immer
Create the next immutable state by mutating the current one - immerjs/immer
- 40An open-source, cross-platform terminal for seamless workflows
https://github.com/wavetermdev/waveterm
An open-source, cross-platform terminal for seamless workflows - wavetermdev/waveterm
- 41Isolated React component development environment with a living style guide
https://github.com/styleguidist/react-styleguidist
Isolated React component development environment with a living style guide - styleguidist/react-styleguidist
- 42🐯 visx | visualization components
https://github.com/airbnb/visx
🐯 visx | visualization components. Contribute to airbnb/visx development by creating an account on GitHub.
- 43Build forms in React, without the tears 😭
https://github.com/jaredpalmer/formik
Build forms in React, without the tears 😭 . Contribute to jaredpalmer/formik development by creating an account on GitHub.
- 44Routing and navigation for your React Native apps
https://github.com/react-navigation/react-navigation
Routing and navigation for your React Native apps. Contribute to react-navigation/react-navigation development by creating an account on GitHub.
- 45The library for web and native user interfaces.
https://github.com/facebook/react
The library for web and native user interfaces. Contribute to facebook/react development by creating an account on GitHub.
- 46🏹 Draw arrows between React elements 🖋
https://github.com/pierpo/react-archer
🏹 Draw arrows between React elements 🖋. Contribute to pierpo/react-archer development by creating an account on GitHub.
- 47The React Framework
https://github.com/vercel/next.js
The React Framework. Contribute to vercel/next.js development by creating an account on GitHub.
- 48Winamp 2 reimplemented for the browser
https://github.com/captbaritone/webamp
Winamp 2 reimplemented for the browser. Contribute to captbaritone/webamp development by creating an account on GitHub.
- 49The best React-based framework with performance, scalability and security built in.
https://github.com/gatsbyjs/gatsby
The best React-based framework with performance, scalability and security built in. - gatsbyjs/gatsby
- 50Integrate React.js with Rails views and controllers, the asset pipeline, or webpacker.
https://github.com/reactjs/react-rails
Integrate React.js with Rails views and controllers, the asset pipeline, or webpacker. - reactjs/react-rails
- 51The monorepo home to all of the FormatJS related libraries, most notably react-intl.
https://github.com/formatjs/formatjs
The monorepo home to all of the FormatJS related libraries, most notably react-intl. - formatjs/formatjs
- 52Fluent UI web represents a collection of utilities, React components, and web components for building web applications.
https://github.com/microsoft/fluentui
Fluent UI web represents a collection of utilities, React components, and web components for building web applications. - microsoft/fluentui
- 53🤖 Powerful asynchronous state management, server-state utilities and data fetching for the web. TS/JS, React Query, Solid Query, Svelte Query and Vue Query.
https://github.com/TanStack/query
🤖 Powerful asynchronous state management, server-state utilities and data fetching for the web. TS/JS, React Query, Solid Query, Svelte Query and Vue Query. - TanStack/query
- 54Simple, scalable state management.
https://github.com/mobxjs/mobx
Simple, scalable state management. Contribute to mobxjs/mobx development by creating an account on GitHub.
- 55A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application.
https://github.com/formkit/auto-animate
A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application. - formkit/auto-animate
- 56Build Better Websites. Create modern, resilient user experiences with web fundamentals.
https://github.com/remix-run/remix
Build Better Websites. Create modern, resilient user experiences with web fundamentals. - remix-run/remix
- 57svg react icons of popular icon packs
https://github.com/react-icons/react-icons
svg react icons of popular icon packs. Contribute to react-icons/react-icons development by creating an account on GitHub.
- 58👩🎤 CSS-in-JS library designed for high performance style composition
https://github.com/emotion-js/emotion
👩🎤 CSS-in-JS library designed for high performance style composition - emotion-js/emotion
- 59Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
https://github.com/shadcn-ui/ui
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source. - shadcn-ui/ui
- 60:rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.
https://github.com/apollographql/apollo-client
:rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server. - apollographql/apollo-client
- 61Vest ✅ Declarative validations framework
https://github.com/ealush/vest
Vest ✅ Declarative validations framework. Contribute to ealush/vest development by creating an account on GitHub.
- 62Set up a modern web app by running one command.
https://github.com/facebook/create-react-app
Set up a modern web app by running one command. Contribute to facebook/create-react-app development by creating an account on GitHub.
- 63A React component for Instagram like stories
https://github.com/mohitk05/react-insta-stories
A React component for Instagram like stories. Contribute to mohitk05/react-insta-stories development by creating an account on GitHub.
- 64❤️ A heart-shaped toggle switch component for React.
https://github.com/anatoliygatt/heart-switch
❤️ A heart-shaped toggle switch component for React. - anatoliygatt/heart-switch
- 65why-did-you-render by Welldone Software monkey patches React to notify you about potentially avoidable re-renders. (Works with React Native as well.)
https://github.com/welldone-software/why-did-you-render
why-did-you-render by Welldone Software monkey patches React to notify you about potentially avoidable re-renders. (Works with React Native as well.) - welldone-software/why-did-you-render
- 66Relay is a JavaScript framework for building data-driven React applications.
https://github.com/facebook/relay
Relay is a JavaScript framework for building data-driven React applications. - facebook/relay
- 67The Fullstack Tutorial for GraphQL
https://github.com/howtographql/howtographql
The Fullstack Tutorial for GraphQL. Contribute to howtographql/howtographql development by creating an account on GitHub.
- 68The compiler for ReScript.
https://github.com/rescript-lang/rescript-compiler
The compiler for ReScript. Contribute to rescript-lang/rescript-compiler development by creating an account on GitHub.
- 69A JavaScript library to position floating elements and create interactions for them.
https://github.com/floating-ui/floating-ui
A JavaScript library to position floating elements and create interactions for them. - floating-ui/floating-ui
- 70Data Visualization Components
https://github.com/uber/react-vis
Data Visualization Components. Contribute to uber/react-vis development by creating an account on GitHub.
- 71The lightweight and flexible Cookie Consent Banner
https://github.com/porscheofficial/cookie-consent-banner
The lightweight and flexible Cookie Consent Banner - porscheofficial/cookie-consent-banner
- 72Sandbox for developing and testing UI components in isolation
https://github.com/react-cosmos/react-cosmos
Sandbox for developing and testing UI components in isolation - react-cosmos/react-cosmos
- 73📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3
https://github.com/alibaba/formily
📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 - alibaba/formily
- 74fast, portable, and extensible cmd+k interface for your site
https://github.com/timc1/kbar
fast, portable, and extensible cmd+k interface for your site - timc1/kbar
- 75The zero configuration build tool for the web. 📦🚀
https://github.com/parcel-bundler/parcel
The zero configuration build tool for the web. 📦🚀. Contribute to parcel-bundler/parcel development by creating an account on GitHub.
- 76A library for development of single-page full-stack web applications in clj/cljs
https://github.com/fulcrologic/fulcro
A library for development of single-page full-stack web applications in clj/cljs - fulcrologic/fulcro
- 77🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table
https://github.com/TanStack/table
🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table - TanStack/table
- 78💬 The most complete chat UI for React Native
https://github.com/FaridSafi/react-native-gifted-chat
💬 The most complete chat UI for React Native. Contribute to FaridSafi/react-native-gifted-chat development by creating an account on GitHub.
- 79Unopinionated Accessible Tree Component with Multi-Select and Drag-And-Drop
https://github.com/lukasbach/react-complex-tree
Unopinionated Accessible Tree Component with Multi-Select and Drag-And-Drop - lukasbach/react-complex-tree
- 80✌️ A spring physics based React animation library
https://github.com/pmndrs/react-spring
✌️ A spring physics based React animation library. Contribute to pmndrs/react-spring development by creating an account on GitHub.
- 81Redefined chart library built with React and D3
https://github.com/recharts/recharts
Redefined chart library built with React and D3. Contribute to recharts/recharts development by creating an account on GitHub.
- 82Bootstrap components built with React
https://github.com/react-bootstrap/react-bootstrap
Bootstrap components built with React. Contribute to react-bootstrap/react-bootstrap development by creating an account on GitHub.
- 83🐻 Bear necessities for state management in React
https://github.com/pmndrs/zustand
🐻 Bear necessities for state management in React. Contribute to pmndrs/zustand development by creating an account on GitHub.
- 84A framework for building native applications using React
https://github.com/facebook/react-native
A framework for building native applications using React - facebook/react-native
- 85📋 React Hooks for form state management and validation (Web + React Native)
https://github.com/react-hook-form/react-hook-form
📋 React Hooks for form state management and validation (Web + React Native) - react-hook-form/react-hook-form
- 86A build system for development of composable software.
https://github.com/teambit/bit
A build system for development of composable software. - teambit/bit
- 87👻 Primitive and flexible state management for React
https://github.com/pmndrs/jotai
👻 Primitive and flexible state management for React - pmndrs/jotai
- 88Your window into the Elastic Stack
https://github.com/elastic/kibana
Your window into the Elastic Stack. Contribute to elastic/kibana development by creating an account on GitHub.
- 89A <QRCode/> component for use with React.
https://github.com/zpao/qrcode.react
A <QRCode/> component for use with React. Contribute to zpao/qrcode.react development by creating an account on GitHub.
- 90Realm is a mobile database: an alternative to SQLite & key-value stores
https://github.com/realm/realm-js
Realm is a mobile database: an alternative to SQLite & key-value stores - realm/realm-js
- 91Internationalization for react done right. Using the i18next i18n ecosystem.
https://github.com/i18next/react-i18next
Internationalization for react done right. Using the i18next i18n ecosystem. - i18next/react-i18next
- 92Optimize React performance and make your React 70% faster in minutes, not months.
https://github.com/aidenybai/million
Optimize React performance and make your React 70% faster in minutes, not months. - GitHub - aidenybai/million: Optimize React performance and make your React 70% faster in minutes, not months.
- 93A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility.
https://github.com/refinedev/refine
A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. - refinedev/refine
- 94⚛️ A React renderer for Figma
https://github.com/react-figma/react-figma
⚛️ A React renderer for Figma. Contribute to react-figma/react-figma development by creating an account on GitHub.
- 95A frontend Framework for single-page applications on top of REST/GraphQL APIs, using TypeScript, React and Material Design
https://github.com/marmelab/react-admin
A frontend Framework for single-page applications on top of REST/GraphQL APIs, using TypeScript, React and Material Design - marmelab/react-admin
- 96gcal/outlook like calendar component
https://github.com/jquense/react-big-calendar
gcal/outlook like calendar component. Contribute to jquense/react-big-calendar development by creating an account on GitHub.
- 97Expo
https://expo.dev/
Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React.
- 98Feature-rich and customizable data grid React component
https://github.com/adazzle/react-data-grid
Feature-rich and customizable data grid React component - adazzle/react-data-grid
- 99Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
https://github.com/mui/material-ui
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever. - mui/material-ui
- 100⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.
https://github.com/preactjs/preact
⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM. - preactjs/preact
- 101A fully type-safe and lightweight internationalization library for all your TypeScript and JavaScript projects.
https://github.com/ivanhofer/typesafe-i18n
A fully type-safe and lightweight internationalization library for all your TypeScript and JavaScript projects. - ivanhofer/typesafe-i18n
- 102Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
https://github.com/storybookjs/storybook
Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation - storybookjs/storybook
- 103Immutable persistent data collections for Javascript which increase efficiency and simplicity.
https://github.com/immutable-js/immutable-js
Immutable persistent data collections for Javascript which increase efficiency and simplicity. - immutable-js/immutable-js
- 104Modern file uploading - components & hooks for React
https://github.com/rpldy/react-uploady
Modern file uploading - components & hooks for React - rpldy/react-uploady
- 105Actor-based state management & orchestration for complex app logic.
https://github.com/statelyai/xstate
Actor-based state management & orchestration for complex app logic. - statelyai/xstate
- 106🐐 Simple and complete React DOM testing utilities that encourage good testing practices.
https://github.com/testing-library/react-testing-library
🐐 Simple and complete React DOM testing utilities that encourage good testing practices. - testing-library/react-testing-library
- 107An enterprise-class UI design language and React UI library
https://github.com/ant-design/ant-design
An enterprise-class UI design language and React UI library - ant-design/ant-design
- 108A fast, local first, reactive Database for JavaScript Applications https://rxdb.info/
https://github.com/pubkey/rxdb
A fast, local first, reactive Database for JavaScript Applications https://rxdb.info/ - pubkey/rxdb
- 109Most modern mobile touch slider with hardware accelerated transitions
https://github.com/nolimits4web/swiper
Most modern mobile touch slider with hardware accelerated transitions - nolimits4web/swiper
- 110⚡️ The Missing Fullstack Toolkit for Next.js
https://github.com/blitz-js/blitz
⚡️ The Missing Fullstack Toolkit for Next.js. Contribute to blitz-js/blitz development by creating an account on GitHub.
- 111Full featured HTML framework for building iOS & Android apps
https://github.com/framework7io/framework7
Full featured HTML framework for building iOS & Android apps - framework7io/framework7
- 112A simple and reusable datepicker component for React
https://github.com/Hacker0x01/react-datepicker/
A simple and reusable datepicker component for React - Hacker0x01/react-datepicker
- 113🔖 lightweight, efficient Tags input component in Vanilla JS / React / Angular / Vue
https://github.com/yairEO/tagify
🔖 lightweight, efficient Tags input component in Vanilla JS / React / Angular / Vue - yairEO/tagify
- 114Zero-runtime CSS in JS library
https://github.com/callstack/linaria
Zero-runtime CSS in JS library. Contribute to callstack/linaria development by creating an account on GitHub.
- 115🏎 A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components.
https://github.com/downshift-js/downshift
🏎 A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components. - downshift-js/downshift
- 116🥢 A minimalist-friendly ~2.1KB routing for React and Preact
https://github.com/molefrog/wouter
🥢 A minimalist-friendly ~2.1KB routing for React and Preact - molefrog/wouter
- 117A draggable and resizable grid layout with responsive breakpoints, for React.
https://github.com/react-grid-layout/react-grid-layout
A draggable and resizable grid layout with responsive breakpoints, for React. - react-grid-layout/react-grid-layout
- 118Customizable Icons for React Native with support for image source and full styling.
https://github.com/oblador/react-native-vector-icons
Customizable Icons for React Native with support for image source and full styling. - oblador/react-native-vector-icons
- 119A desktop app for inspecting your React JS and React Native projects. macOS, Linux, and Windows.
https://github.com/skellock/reactotron
A desktop app for inspecting your React JS and React Native projects. macOS, Linux, and Windows. - infinitered/reactotron
- 120A React component for building Web forms from JSON Schema.
https://github.com/mozilla-services/react-jsonschema-form
A React component for building Web forms from JSON Schema. - rjsf-team/react-jsonschema-form
- 121Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
https://github.com/mattermost/mattermost-server
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle.. - mattermost/mattermost
- 122Zero-runtime Stylesheets-in-TypeScript
https://github.com/seek-oss/vanilla-extract
Zero-runtime Stylesheets-in-TypeScript. Contribute to vanilla-extract-css/vanilla-extract development by creating an account on GitHub.
- 123Delightful JavaScript Testing.
https://github.com/facebook/jest
Delightful JavaScript Testing. Contribute to jestjs/jest development by creating an account on GitHub.
- 124Curated List of React Components & Libraries.
https://github.com/brillout/awesome-react-components
Curated List of React Components & Libraries. Contribute to brillout/awesome-react-components development by creating an account on GitHub.
- 125Business logic with ease ☄️
https://github.com/zerobias/effector
Business logic with ease ☄️. Contribute to effector/effector development by creating an account on GitHub.
- 126React-specific linting rules for ESLint
https://github.com/yannickcr/eslint-plugin-react
React-specific linting rules for ESLint. Contribute to jsx-eslint/eslint-plugin-react development by creating an account on GitHub.
- 127🌈 React for interactive command-line apps
https://github.com/vadimdemedes/ink
🌈 React for interactive command-line apps. Contribute to vadimdemedes/ink development by creating an account on GitHub.
- 128tsParticles - Easily create highly customizable JavaScript particles effects, confetti explosions and fireworks animations and use them as animated backgrounds for your website. Ready to use components available for React.js, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Inferno, Solid, Riot and Web Components.
https://github.com/matteobruni/tsparticles
tsParticles - Easily create highly customizable JavaScript particles effects, confetti explosions and fireworks animations and use them as animated backgrounds for your website. Ready to use compon...
- 129Device Information for React Native iOS and Android
https://github.com/react-native-device-info/react-native-device-info
Device Information for React Native iOS and Android - react-native-device-info/react-native-device-info
- 130List of top 500 ReactJS Interview Questions & Answers....Coding exercise questions are coming soon!!
https://github.com/sudheerj/reactjs-interview-questions
List of top 500 ReactJS Interview Questions & Answers....Coding exercise questions are coming soon!! - sudheerj/reactjs-interview-questions
- 131Cheatsheets for experienced React developers getting started with TypeScript
https://github.com/typescript-cheatsheets/react-typescript-cheatsheet
Cheatsheets for experienced React developers getting started with TypeScript - typescript-cheatsheets/react
- 132babel-relay-plugin
https://www.npmjs.com/package/babel-relay-plugin
Babel Relay Plugin for transpiling GraphQL queries for use with Relay.. Latest version: 0.11.0, last published: 8 years ago. Start using babel-relay-plugin in your project by running `npm i babel-relay-plugin`. There are 73 other projects in the npm registry using babel-relay-plugin.
- 133598fa75e22bdfa44cf47
https://gist.github.com/wincent/598fa75e22bdfa44cf47
GitHub Gist: instantly share code, notes, and snippets.
- 134eyston/relay-composite-network-layer
https://github.com/eyston/relay-composite-network-layer
Contribute to eyston/relay-composite-network-layer development by creating an account on GitHub.
- 135Relay TodoMVC with routing
https://github.com/taion/relay-todomvc
Relay TodoMVC with routing. Contribute to taion/relay-todomvc development by creating an account on GitHub.
- 136Sangria Relay Support
https://github.com/sangria-graphql/sangria-relay
Sangria Relay Support. Contribute to sangria-graphql/sangria-relay development by creating an account on GitHub.
- 137Bringing Modern Web Techniques to Mobile
https://www.youtube.com/watch?v=X6YbAKiLCLU
As we introduce React Native & Relay, learn how we use JavaScript libraries and techniques to help our engineers develop great mobile experiences ever more e...
- 138Use Relay to fetch and store data outside of a React component
https://github.com/acdlite/relay-sink
Use Relay to fetch and store data outside of a React component - acdlite/relay-sink
- 139Use Relay without a GraphQL server
https://github.com/relay-tools/relay-local-schema
Use Relay without a GraphQL server. Contribute to relay-tools/relay-local-schema development by creating an account on GitHub.
- 140Relay + GraphQL + React on Rails
https://github.com/nethsix/relay-on-rails
Relay + GraphQL + React on Rails. Contribute to nethsix/relay-on-rails development by creating an account on GitHub.
- 141React, Relay, GraphQL project skeleton
https://github.com/fortruce/relay-skeleton
React, Relay, GraphQL project skeleton. Contribute to fortruce/relay-skeleton development by creating an account on GitHub.
- 142react-native and relay working out of the box
https://github.com/lenaten/react-native-relay
react-native and relay working out of the box. Contribute to lenaten/react-native-relay development by creating an account on GitHub.
- 143Babel plugin which converts Flow types into Relay fragments
https://github.com/guymers/babel-plugin-flow-relay-query
Babel plugin which converts Flow types into Relay fragments - guymers/babel-plugin-flow-relay-query
- 144:point_up::running: Modern Relay Starter Kit - Integrated with Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS
https://github.com/lvarayut/relay-fullstack
:point_up::running: Modern Relay Starter Kit - Integrated with Relay, GraphQL, Express, ES6/ES7, JSX, Webpack, Babel, Material Design Lite, and PostCSS - lvarayut/relay-fullstack
- 145A Go/Golang library to help construct a graphql-go server supporting react-relay.
https://github.com/graphql-go/relay
A Go/Golang library to help construct a graphql-go server supporting react-relay. - graphql-go/relay
- 146React/Relay TodoMVC app, driven by a Golang GraphQL backend
https://github.com/sogko/todomvc-relay-go
React/Relay TodoMVC app, driven by a Golang GraphQL backend - sogko/todomvc-relay-go
- 147Adds server side rendering support to react-router-relay
https://github.com/denvned/isomorphic-relay-router
Adds server side rendering support to react-router-relay - denvned/isomorphic-relay-router
- 148Light, Electron-based Wrapper around GraphiQL
https://github.com/skevy/graphiql-app
Light, Electron-based Wrapper around GraphiQL. Contribute to skevy/graphiql-app development by creating an account on GitHub.
- 149relay-nested-routes
https://www.npmjs.com/package/relay-nested-routes
Nested react-router views for Relay. Latest version: 0.3.1, last published: 9 years ago. Start using relay-nested-routes in your project by running `npm i relay-nested-routes`. There are no other projects in the npm registry using relay-nested-routes.
- 150recompose-relay
https://www.npmjs.com/package/recompose-relay
Recompose helpers for Relay.. Latest version: 0.3.1, last published: 8 years ago. Start using recompose-relay in your project by running `npm i recompose-relay`. There are no other projects in the npm registry using recompose-relay.
- 151Todo example for koa-graphql and relay
https://github.com/chentsulin/koa-graphql-relay-example
Todo example for koa-graphql and relay. Contribute to chentsulin/koa-graphql-relay-example development by creating an account on GitHub.
- 152Utility decorators for Relay components
https://github.com/4Catalyzer/relay-decorators
Utility decorators for Relay components. Contribute to 4Catalyzer/relay-decorators development by creating an account on GitHub.
- 153Build software better, together
https://github.com/relayjs/relay-starter-kit.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 154A very simple starter for React Relay using Browserify
https://github.com/mhart/simple-relay-starter
A very simple starter for React Relay using Browserify - mhart/simple-relay-starter
- 155A thin wrapper for sequelize and graphql-relay
https://github.com/MattMcFarland/sequelize-relay
A thin wrapper for sequelize and graphql-relay. Contribute to MattMcFarland/sequelize-relay development by creating an account on GitHub.
- 156Build software better, together
https://github.com/sequelize/sequelize.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 157A library to help construct a graphql-js server supporting react-relay.
https://github.com/graphql/graphql-relay-js
A library to help construct a graphql-js server supporting react-relay. - graphql/graphql-relay-js
- 158[Deprecated] Relay Classic integration for React Router
https://github.com/relay-tools/react-router-relay
[Deprecated] Relay Classic integration for React Router - relay-tools/react-router-relay
- 159GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools.
https://github.com/graphql/graphiql
GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools. - graphql/graphiql
- 160A library to help construct a graphql-py server supporting react-relay
https://github.com/graphql-python/graphql-relay-py
A library to help construct a graphql-py server supporting react-relay - graphql-python/graphql-relay-py
- 161Facebook Relay talk - Lunch and Learn session
https://www.youtube.com/watch?v=sP3n-nht0Xo
Talk and live demo of Facebook Relay goodness, with a touch of CSS modules and PostCSS. Presented by Albert Still and Alex Savin
- 162An Application Framework For React at react-europe 2015
https://www.youtube.com/watch?v=IrgHurBjQbg
Relay is a new framework from Facebook that enables declarative data fetching & updates for React applications. Relay components use GraphQL to specify their...
- 163Barebones starting point for a Relay application.
https://github.com/relayjs/relay-starter-kit
Barebones starting point for a Relay application. Contribute to facebookarchive/relay-starter-kit development by creating an account on GitHub.
- 164Seamless Syncing for React (VanJS)
http://www.slideshare.net/BrooklynZelenka/relay-seamless-syncing-for-react-vanjs
Relay: Seamless Syncing for React (VanJS) - Download as a PDF or view online for free
- 165Relay - Daniel Dembach - Hamburg React.js Meetup
https://www.youtube.com/watch?v=dvWTxy1eY6s
A recording taken during the meetup of the react.js hamburg group:http://www.meetup.com/Hamburg-React-js-Meetup/events/225186254/
- 166Build software better, together
https://github.com/rmosolgo/graphql-relay-ruby
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 167Build software better, together
https://github.com/graphql/graphiql.
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 168an chat example showing Relay with routing and pagination
https://github.com/transedward/relay-chat
an chat example showing Relay with routing and pagination - hungtuchen/relay-chat
- 169Create Relay connections from MongoDB cursors
https://github.com/mikberg/relay-mongodb-connection
Create Relay connections from MongoDB cursors. Contribute to heysailor/relay-mongodb-connection development by creating an account on GitHub.
- 170Build software better, together
https://github.com/codefoundries/UniversalRelayBoilerplate
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 171Getting Started with Relay
https://auth0.com/blog/2015/10/06/getting-started-with-relay/
Learn how to get started with a Relay app and how to protect the GraphQL endpoint with JWT authentication.
- 172💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, and Joy UI.
https://github.com/kriasoft/nodejs-api-starter
💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, and Joy UI. - kriasoft/graphql-starter-kit
- 173React with Relay and GraphQL with Andrew Smith
https://www.youtube.com/watch?v=Cfna8gwt9h8
Andrew Smith presents GraphQL in relation to React and Relay.
- 174ReactRelayNetworkLayer with middlewares and query batching for Relay Classic.
https://github.com/nodkz/react-relay-network-layer
ReactRelayNetworkLayer with middlewares and query batching for Relay Classic. - relay-tools/react-relay-network-layer
- 175Create a GraphQL HTTP server with Koa.
https://github.com/chentsulin/koa-graphql
Create a GraphQL HTTP server with Koa. Contribute to graphql-community/koa-graphql development by creating an account on GitHub.
- 176Make Relay work with React Native out of the box · Issue #26 · facebook/relay
https://github.com/facebook/relay/issues/26
The remaining steps are: Relay/React Native/fbjs versioning Use the appropriate unstableBatchedUpdates depending on React/React Native Version of fetch polyfill for React Native Document the use of...
- 177useHooks – The React Hooks Library
https://usehooks.com/
A collection of modern, server-safe React hooks – from the ui.dev team
- 178Making Sense of React Hooks
https://medium.com/@dan_abramov/making-sense-of-react-hooks-fdbde8803889
This week, Sophie Alpert and I presented the “Hooks” proposal at React Conf, followed by a deep dive from Ryan Florence:
- 179not magic, just arrays
https://medium.com/@ryardley/react-hooks-not-magic-just-arrays-cd4f1857236e
Untangling the rules around the proposal using diagrams
- 180Color Match - CodeSandbox
https://codesandbox.io/s/jjy215l7w3
Color Match by tannerlinsley using d3-ease, emotion, mo-js, raf, react, react-dom, react-emotion, react-scripts
- 181Counter using useState of React Hooks - CodeSandbox
https://codesandbox.io/s/yjn90lzwrx?module=%2Fsrc%2FApp.js
Create a Counter using React Hooks with useState
- 182CodeSandbox
https://codesandbox.io/s/m449vyk65x
CodeSandbox is an online editor tailored for web applications.
- 183ppxnl191zx - CodeSandbox
https://codesandbox.io/s/ppxnl191zx
ppxnl191zx using lodash, react, react-dom, react-scripts, react-spring
- 184React Hooks for GraphQL
https://medium.com/open-graphql/react-hooks-for-graphql-3fa8ebdd6c62
How to create custom React hooks to handle common GraphQL operations.
- 185Hooks in react-spring, a tutorial
https://medium.com/@drcmda/hooks-in-react-spring-a-tutorial-c6c436ad7ee4
Yesterday the React-team finally unveiled their vision of a class-less future in React. Today we’re going to take a look at how to use…
- 186Using the State Hook – React
https://reactjs.org/docs/hooks-state.html
A JavaScript library for building user interfaces
- 187Using the Effect Hook – React
https://reactjs.org/docs/hooks-effect.html
A JavaScript library for building user interfaces
- 188Hooks Todo App - CodeSandbox
https://codesandbox.io/s/9kwyzy0y4
Example app for this post: \n\nhttps://blog.blackbox-vision.tech/making-a-beautiful-todo-app-using-react-hooks-material-ui
- 189useState() and useEffect() - CodeSandbox
https://codesandbox.io/s/yq5qowzrvz
React Hooks: useState() and useEffect() by chris-sev using react, react-dom, react-scripts
- 190Building Your Own Hooks – React
https://reactjs.org/docs/hooks-custom.html
A JavaScript library for building user interfaces
- 191Rules of Hooks – React
https://reactjs.org/docs/hooks-rules.html
A JavaScript library for building user interfaces
- 192Introducing Hooks – React
https://reactjs.org/docs/hooks-intro.html
A JavaScript library for building user interfaces
- 193Everything you need to know about React Hooks
https://medium.com/@vcarl/everything-you-need-to-know-about-react-hooks-8f680dfd4349
React just announced a new feature: Hooks. It’s a brand new set of APIs that enables powerful new ways to share stateful logic between…
- 194Hooks at a Glance – React
https://reactjs.org/docs/hooks-overview.html
A JavaScript library for building user interfaces
- 195Hooks FAQ – React
https://reactjs.org/docs/hooks-faq.html
A JavaScript library for building user interfaces
- 196Hooks API Reference – React
https://reactjs.org/docs/hooks-reference.html
A JavaScript library for building user interfaces
- 197React Hooks and Suspense
https://egghead.io/playlists/react-hooks-and-suspense-650307f2
React Suspense has been released in React 16.6.0 (React.lazy support only) and React Hooks is stable in 16.8.0! Let's see how we can use these and more ...
- 198Primer on React Hooks
https://testdriven.io/blog/react-hooks-primer/
An introduction to React Hooks.
- 199React Hook to track the visibility of a functional component
https://github.com/AvraamMavridis/react-intersection-visible-hook
React Hook to track the visibility of a functional component - AvraamMavridis/react-intersection-visible-hook
- 200Manage global state with React Hooks
https://medium.com/@Charles_Stover/manage-global-state-with-react-hooks-6065041b55b4
Since the announcement of experimental Hooks in React 16.7, they have taken the React community by storm.
- 201Managing Web Sockets with useEffect and useState
https://medium.com/@rossbulat/react-hooks-managing-web-sockets-with-useeffect-and-usestate-2dfc30eeceec
Rundown of React Hooks and applying them to a real-time chat room simulation
- 202React Hooks - A deeper dive featuring useContext and useReducer
https://testdriven.io/blog/react-hooks-advanced/
This article looks at how React JS hooks can be used to make React applications and their state management clean and efficient.
- 203jacobp100/hooks-test
https://github.com/jacobp100/hooks-test
Contribute to jacobp100/hooks-test development by creating an account on GitHub.
- 204A set of reusable React Hooks.
https://github.com/beizhedenglong/react-hooks-lib
A set of reusable React Hooks. Contribute to beizhedenglong/react-hooks-lib development by creating an account on GitHub.
- 205Determining screen size type for Bootstrap 4 grid.
https://github.com/pankod/react-hooks-screen-type
Determining screen size type for Bootstrap 4 grid. - pankod/react-hooks-screen-type
- 206A collection of useful React hooks
https://github.com/kitze/react-hanger
A collection of useful React hooks . Contribute to kitze/react-hanger development by creating an account on GitHub.
- 207React Hooks for Firebase.
https://github.com/csfrequency/react-firebase-hooks
React Hooks for Firebase. Contribute to CSFrequency/react-firebase-hooks development by creating an account on GitHub.
- 208[OUTDATED]Ponyfill for the React Hooks API (Support RN)
https://github.com/yesmeck/react-with-hooks
[OUTDATED]Ponyfill for the React Hooks API (Support RN) - yesmeck/react-with-hooks
- 209React's Hooks API implemented for web components 👻
https://github.com/matthewp/haunted
React's Hooks API implemented for web components 👻 - matthewp/haunted
- 210A timer hook for React
https://github.com/thibaultboursier/use-timer
A timer hook for React. Contribute to thibaultboursier/use-timer development by creating an account on GitHub.
- 211React Hooks — 👍
https://github.com/streamich/react-use
React Hooks — 👍. Contribute to streamich/react-use development by creating an account on GitHub.
- 212Web. Components. 😂
https://github.com/palmerhq/the-platform
Web. Components. 😂. Contribute to jaredpalmer/the-platform development by creating an account on GitHub.
- 213🌩 A tiny (185 bytes) event-based Redux-like state manager for React, Preact, Angular, Vue, and Svelte
https://github.com/storeon/storeon
🌩 A tiny (185 bytes) event-based Redux-like state manager for React, Preact, Angular, Vue, and Svelte - storeon/storeon
- 214Use immer to drive state with a React hooks
https://github.com/mweststrate/use-immer
Use immer to drive state with a React hooks. Contribute to immerjs/use-immer development by creating an account on GitHub.
- 215React hook for conveniently use Fetch API
https://github.com/ilyalesik/react-fetch-hook
React hook for conveniently use Fetch API. Contribute to ilyalesik/react-fetch-hook development by creating an account on GitHub.
- 216React hooks implementation of Google's "Thanos" easter egg
https://github.com/codeshifu/react-thanos
React hooks implementation of Google's "Thanos" easter egg - luqmanoop/react-thanos
- 217Learn Advanced React Hooks workshop
https://github.com/kentcdodds/advanced-react-hooks
Learn Advanced React Hooks workshop. Contribute to kentcdodds/advanced-react-hooks development by creating an account on GitHub.
- 218React hooks for convenient react-navigation use
https://github.com/react-navigation/react-navigation-hooks
React hooks for convenient react-navigation use. Contribute to react-navigation/hooks development by creating an account on GitHub.
- 219React Native APIs turned into React Hooks for use in functional React components
https://github.com/react-native-community/react-native-hooks
React Native APIs turned into React Hooks for use in functional React components - react-native-community/hooks
- 220📋 React Hooks for form state management and validation (Web + React Native)
https://github.com/bluebill1049/react-hook-form
📋 React Hooks for form state management and validation (Web + React Native) - react-hook-form/react-hook-form
- 221React Hook for accessing state and dispatch from a Redux store
https://github.com/facebookincubator/redux-react-hook
React Hook for accessing state and dispatch from a Redux store - facebookarchive/redux-react-hook
- 222Use React Hooks for `connect` by markerikson · Pull Request #1065 · reduxjs/react-redux
https://github.com/reduxjs/react-redux/pull/1065
This PR builds on the previous React-Redux version 6 preview work from #898, #995, aand #1000 . As with the previous couple PRs, the major changes are: Switching from legacy context to createCont...
- 223React Today and Tomorrow and 90% Cleaner React With Hooks
https://www.youtube.com/watch?v=dpw9EHDh2bM
The first three talks from React Conf 2018 by Sophie Alpert, Dan Abramov, and Ryan Florence.Learn more about Hooks at https://reactjs.org/hooks.
- 224🐶 React hook for making isomorphic http requests
https://github.com/alex-cory/react-usefetch
🐶 React hook for making isomorphic http requests. Contribute to ava/use-http development by creating an account on GitHub.
- 225Stepping through React code
https://youtu.be/JQeB9miT9Wc
I'm trying to figure out the best way to simplify testing of React components with react-testing-library.
- 226Using Immer with Reducers and React Hooks
https://youtu.be/FmKjwh34Rn8
Learn how to simplify your reducers with Immer and integrate it with React Hooks.Code: https://github.com/benawad/react-hooks-examples/tree/4_immerLinks from...
- 227Using React Hooks vs. Class Components
https://youtu.be/vbaIZ3xMj9U
I'm planning on using both React Hooks and Class Components.Code: https://github.com/benawad/react-hooks-examples/tree/3_performance_useReducerLinks from vid...
- 228Are React Hooks Slower than Class Components?
https://youtu.be/tKRWuVOEB2w
React Hooks are not slower than Class Components.Starting Code: https://github.com/benawad/react-hooks-examples/tree/1_todolist_useStateFinished Code: https:...
- 229Building a Todo List with React Hooks useState
https://youtu.be/cAZ-fOd1RpA
A walkthrough of building a Todo List with React Hooks. Specifically, useState.Code: https://github.com/benawad/react-hooks-examples/tree/1_todolist_useState...
- 230Fetching Data from an API with React Hooks useEffect
https://youtu.be/k0WnY0Hqe5c
Learn how to fetch data from an API using React Hooks useEffect.Code: https://github.com/benawad/react-hooks-examples/tree/2_api_useEffectLinks from video:ht...
- 231React Hooks useContext
https://youtu.be/xWXxkFzgnFM
Learn how to use the React Context API with function components. Using the useContext React Hook.Code: https://github.com/benawad/react-hooks-examples/tree/5...
- 232My Thoughts on React Hooks
https://youtu.be/gmF4k6P2va8
React Hooks is coming in React 16.7 Links from video:https://reactjs.org/docs/hooks-intro.html----If you like cooking, checkout my side project: https://www....
Related Articlesto learn about angular.
- 1Getting Started with React.js: Building Your First App
- 2JSX in React.js: The Gap Between JavaScript and HTML
- 3React Hooks: UseState, UseEffect, and More
- 4Building Reusable Components in React.js: Best Practices Guide
- 5State Management in React.js: Context API vs Redux
- 6Redux Toolkit in React.js: State Management for Complex Applications
- 7Connecting React.js with a REST API: Guide to Fetching Data
- 8Building Real-Time Applications with React and WebSockets
- 9Boosting React.js Performance: Code Splitting and Lazy Loading
- 10Setting Up React.js with TypeScript
FAQ'sto learn more about Angular JS.
mail [email protected] to add more queries here 🔍.
- 1
what are react js components
- 2
how to implement azure ad authentication in react js
- 3
how react js is different from angularjs
- 4
where can i find webpack.config.js in react
- 5
is react faster than javascript
- 6
is react similar to javascript
- 7
is react really necessary
- 8
what will replace react js
- 9
how to call api in react js
- 10
will solid js replace react
- 11
what is routing in react js
- 12
how long would it take to learn react js
- 13
why is react better than javascript
- 14
what are the important topics in react js
- 15
who uses react js
- 16
how to create an app in react js
- 17
can i learn next js without react
- 19
how much it will take to learn react js
- 20
does react js require node js
- 21
how to create app in react js
- 22
why would you use react
- 23
does a react component have to return jsx
- 24
is react worth it
- 25
how to install react js
- 26
is react.js hard to learn
- 27
how react js works
- 28
does react js need node js
- 29
when to use react js
- 30
why react js used
- 31
how to do react js
- 32
is react js free
- 33
who created react
- 34
what is redux in react js
- 35
how long it will take to learn react js
- 36
what we have to learn before react js
- 37
what language does react js use
- 38
how to get data by id in react js
- 39
is react js functional programming
- 40
why react js is faster
- 41
when react js was introduced
- 42
where react js is used
- 43
what is a side effect react
- 44
what is hooks in react js
- 45
does react js use html
- 46
how to install react js in windows
- 47
why react js is a library
- 48
why react js is so popular
- 49
what is component will mount in react js
- 50
who developed react js
- 51
what should i learn before react js
- 52
are react js and react native same
- 53
what are the prerequisites to learn react js
- 54
what is props in react js
- 55
does react js use typescript
- 56
should i use js or jsx in react
- 57
will reactjs die
- 58
is react js dying
- 59
is react losing popularity
- 60
how to call an api in react js
- 61
is react outdated
- 62
- 63
how to do routing in react js
- 64
should i use next js or react
- 65
what react js do
- 66
is react js a framework
- 67
what is react js in hindi
- 68
what does react js do
- 69
what react js is used for
- 70
where to start react js
- 71
do you need node js for react
- 72
what is context api in react js
- 73
how to create dynamic id in react js
- 74
which react framework is best
- 75
what is react side effects
- 76
where we use react js
- 77
will next js replace react
- 78
why should we use react js
- 79
what are the features of react js
- 80
what are react js hooks
- 81
does react js have future
- 82
where is webpack.config.js in react
- 83
why react js is important
- 84
how to get dynamic id in react js
- 85
does react.js create a virtual dom in the memory
- 86
can react js be used for backend
- 87
when was react js created
- 88
where is react-native.config.js
- 89
where to learn react js
- 90
is react js easy to learn
- 91
when to learn react js
- 92
is react javascript
- 93
how to do form validation in react js
- 94
what does strict mode do in react js
- 95
what are states in react js
- 96
will vue js overtake react
- 97
how does react js work
- 98
how to learn react js
- 99
how to do unit testing in react js
- 100
why react js is declarative
- 101
what are props in react js
- 102
how to create an api in react js
- 103
would react be dead
- 104
how to create an array in react js
- 105
is react js frontend or backend
- 106
how to use navigate in react js
- 107
what is state in react js
- 108
how to create an object in react js
- 109
is react js still relevant
- 110
should i learn next js or react
- 111
how to fetch data using id in react js
- 112
how to pass dynamic id in react js
- 113
why react js is better than angular
- 114
how much js should i know to learn react
- 115
how to do pagination in react js
- 116
where to code react js
- 117
do you have to use react with jsx
- 118
is react js a framework or library
- 119
can react js be used for mobile apps
- 120
why react js is popular
- 121
how to add image in react js
- 122
who owns react js
- 123
what should i learn after react js
- 124
who developed react
- 125
why do we use react js
- 126
is react js in demand
- 127
which companies use react
- 128
what are react js and node js
- 129
is react js a language
- 130
what is jsx in react
- 131
why react js is better
- 132
who created react js
- 133
when to use next js over react
- 134
how react js works internally
More Sitesto check out once you're finished browsing here.
https://www.0x3d.site/
0x3d is designed for aggregating information.
https://nodejs.0x3d.site/
NodeJS Online Directory
https://cross-platform.0x3d.site/
Cross Platform Online Directory
https://open-source.0x3d.site/
Open Source Online Directory
https://analytics.0x3d.site/
Analytics Online Directory
https://javascript.0x3d.site/
JavaScript Online Directory
https://golang.0x3d.site/
GoLang Online Directory
https://python.0x3d.site/
Python Online Directory
https://swift.0x3d.site/
Swift Online Directory
https://rust.0x3d.site/
Rust Online Directory
https://scala.0x3d.site/
Scala Online Directory
https://ruby.0x3d.site/
Ruby Online Directory
https://clojure.0x3d.site/
Clojure Online Directory
https://elixir.0x3d.site/
Elixir Online Directory
https://elm.0x3d.site/
Elm Online Directory
https://lua.0x3d.site/
Lua Online Directory
https://c-programming.0x3d.site/
C Programming Online Directory
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
https://r-programming.0x3d.site/
R Programming Online Directory
https://perl.0x3d.site/
Perl Online Directory
https://java.0x3d.site/
Java Online Directory
https://kotlin.0x3d.site/
Kotlin Online Directory
https://php.0x3d.site/
PHP Online Directory
https://react.0x3d.site/
React JS Online Directory
https://angular.0x3d.site/
Angular JS Online Directory