Bird
Raised Fist0
React Nativemobile~5 mins

MMKV for fast storage in React Native

Choose your learning style10 modes available
Introduction

MMKV helps your app save and get data quickly. It works like a super-fast notebook for your app.

You want to save user settings like theme or language.
You need to remember if a user is logged in or not.
You want to store small data that your app uses often.
You want faster data access than regular storage.
You want to keep data even if the app closes.
Syntax
React Native
import { MMKV } from 'react-native-mmkv';

const storage = new MMKV();

// Save data
storage.set('key', 'value');

// Get data
const value = storage.getString('key');

Use set to save data with a key.

Use getString to get saved string data by key.

Examples
Saves 'Alice' as username and gets it back.
React Native
storage.set('username', 'Alice');
const name = storage.getString('username');
Saves login status as a string and retrieves it.
React Native
storage.set('isLoggedIn', 'true');
const loggedIn = storage.getString('isLoggedIn');
Deletes the saved username from storage.
React Native
storage.delete('username');
Sample App

This app shows a saved name from MMKV storage. When you press the button, it saves 'Bob' and updates the display.

React Native
import React, { useState } from 'react';
import { View, Text, Button } from 'react-native';
import { MMKV } from 'react-native-mmkv';

const storage = new MMKV();

export default function App() {
  const [name, setName] = useState(storage.getString('name') || 'No name saved');

  const saveName = () => {
    storage.set('name', 'Bob');
    setName(storage.getString('name'));
  };

  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Saved Name: {name}</Text>
      <Button title="Save Name" onPress={saveName} />
    </View>
  );
}
OutputSuccess
Important Notes

MMKV stores data very fast compared to AsyncStorage.

It works well for small pieces of data like strings and booleans.

Remember to import and create an MMKV instance before using it.

Summary

MMKV is a fast way to save and get small data in React Native apps.

Use set to save and getString to read data.

It helps keep app data even after closing the app.

Practice

(1/5)
1. What is the main purpose of using MMKV in a React Native app?
easy
A. To design app layouts
B. To store small data quickly and keep it after app closes
C. To handle network requests
D. To create complex animations

Solution

  1. Step 1: Understand MMKV's role

    MMKV is designed for fast storage of small data in apps.
  2. Step 2: Compare options

    Options A, B, and C relate to app layouts, animations, and networking, which are not MMKV's purpose.
  3. Final Answer:

    To store small data quickly and keep it after app closes -> Option B
  4. Quick Check:

    MMKV = fast persistent storage [OK]
Hint: MMKV is for fast data storage, not UI or network [OK]
Common Mistakes:
  • Confusing MMKV with UI or animation libraries
  • Thinking MMKV handles network calls
  • Assuming MMKV is for large file storage
2. Which of the following is the correct way to save a string value using MMKV in React Native?
easy
A. MMKV.set('key', 'value')
B. MMKV.save('key', 'value')
C. MMKV.store('key', 'value')
D. MMKV.put('key', 'value')

Solution

  1. Step 1: Recall MMKV save method

    The correct method to save data is set.
  2. Step 2: Check other options

    Methods like save, store, and put are not valid MMKV methods.
  3. Final Answer:

    MMKV.set('key', 'value') -> Option A
  4. Quick Check:

    Use set() to save data [OK]
Hint: Use set() to save data in MMKV [OK]
Common Mistakes:
  • Using incorrect method names like save or put
  • Confusing MMKV with AsyncStorage syntax
  • Forgetting to pass both key and value
3. What will be the output of this code snippet?
const MMKV = require('react-native-mmkv').MMKV;
const storage = new MMKV();
storage.set('name', 'Alice');
const result = storage.getString('name');
console.log(result);
medium
A. undefined
B. null
C. 'Alice'
D. Error: getString is not a function

Solution

  1. Step 1: Analyze storage.set call

    The code saves the string 'Alice' with key 'name'.
  2. Step 2: Analyze storage.getString call

    Retrieves the string stored under 'name', which is 'Alice'.
  3. Final Answer:

    'Alice' -> Option C
  4. Quick Check:

    getString('name') returns 'Alice' [OK]
Hint: getString returns saved string value [OK]
Common Mistakes:
  • Expecting undefined if not awaited
  • Confusing getString with get() method
  • Assuming getString returns null if key exists
4. Identify the error in this MMKV usage code:
const storage = new MMKV();
storage.set('count', 5);
const value = storage.getString('count');
console.log(value);
medium
A. Using getString to read a number value
B. Missing await before storage.set
C. MMKV constructor requires parameters
D. set method only accepts strings

Solution

  1. Step 1: Check data type saved

    The code saves a number 5 using set.
  2. Step 2: Check retrieval method

    getString expects a string value, but 'count' stores a number, causing mismatch.
  3. Final Answer:

    Using getString to read a number value -> Option A
  4. Quick Check:

    getString expects string data [OK]
Hint: Match getString with string data only [OK]
Common Mistakes:
  • Trying to getString for non-string data
  • Assuming set is async and needs await
  • Thinking MMKV constructor needs arguments
5. You want to save a user's theme preference ('dark' or 'light') and retrieve it safely after app restart using MMKV. Which code snippet correctly does this?
hard
A. const storage = new MMKV(); storage.set('theme', 'dark'); const theme = storage.getString('theme');
B. const storage = new MMKV(); storage.set('theme', 'dark'); const theme = storage.get('theme');
C. const storage = new MMKV(); storage.save('theme', 'dark'); const theme = storage.getString('theme');
D. const storage = new MMKV(); storage.set('theme', 'dark'); const theme = storage.getString('theme') ?? 'dark';

Solution

  1. Step 1: Save theme preference correctly

    Use set to save the string 'dark' under 'theme'.
  2. Step 2: Retrieve with fallback

    Use getString('theme') and fallback to 'dark' if null or undefined using ??.
  3. Final Answer:

    const storage = new MMKV(); storage.set('theme', 'dark'); const theme = storage.getString('theme') ?? 'dark'; -> Option D
  4. Quick Check:

    Use set() and getString() with nullish fallback [OK]
Hint: Use ?? for safe fallback when reading MMKV data [OK]
Common Mistakes:
  • Using non-existent save() method
  • Not providing fallback value on getString
  • Using get() instead of getString for strings
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard