如何使用 Recoil 和 react-native-mmkv 来有效地持久化数据片段

索引

    1. 首先

 

    1. 安装所需的软件包

 

    1. 创建Recoil持久化助手

 

    1. 使用持久化原子

 

    1. 在应用程序中使用

 

    总结

首先

Recoil作为React的状态管理库非常受欢迎,但是有多种方法可以永久保存该状态。本文将介绍如何使用react-native-mmkv这个高速键值存储库来有效地永久保存Recoil的状态。

安装所需的软件包。

首先,需要安装必要的软件包。

yarn add recoil react-native-mmkv

然后,将react-native-mmkv的本地部分进行链接。

expo install react-native-mmkv

创建 Recoil 持久化助手

接下来,我们将使用react-native-mmkv创建一个用于持久化保存Recoil的原子和选择器状态的辅助函数。

import MMKV from 'react-native-mmkv';
import { atom, DefaultValue } from 'recoil';

export const persistentAtom = <T>(key: string, defaultVal: T) => {
  return atom<T>({
    key,
    default: defaultVal,
    effects_UNSTABLE: [
      ({ setSelf, onSet }) => {
        const savedValue = MMKV.getString(key);

        if (savedValue != null) {
          setSelf(JSON.parse(savedValue));
        }

        onSet((newValue) => {
          if (newValue instanceof DefaultValue) {
            MMKV.delete(key);
          } else {
            MMKV.set(key, JSON.stringify(newValue));
          }
        });
      },
    ],
  });
};

使用永续化原子

利用上述的辅助函数来创建持久化的原子。

import { persistentAtom } from './path-to-your-helper';

export const userState = persistentAtom('userState', {
  name: '',
  age: 0,
});

在应用程序中使用。

就像普通的Recoil原子一样,您可以在应用程序中使用这个持久化原子。

import { useRecoilState } from 'recoil';
import { userState } from './path-to-your-atom';

const UserInfo = () => {
  const [user, setUser] = useRecoilState(userState);

  return (
    <View>
      <Text>Name: {user.name}</Text>
      <Text>Age: {user.age}</Text>
    </View>
  );
};

总结

通过结合 Recoil 和 react-native-mmkv,您可以高效地将 React Native 应用程序的状态持久化。这种组合非常适合在保持应用程序性能的同时安全地存储用户数据。


如果您喜欢并评论,将非常感谢!如果有任何问题或反馈,请随时告知!?


广告
将在 10 秒后关闭
bannerAds