📜  react-native 骨架 (1)

📅  最后修改于: 2023-12-03 15:04:50.244000             🧑  作者: Mango

React Native骨架

React Native骨架是一种用于加速应用程序加载时间的技术。它可以在应用程序渲染之前以编程方式生成占位符组件,为应用程序瞬间创建一个干净的布局,并在数据加载完成后自动替换占位符。

什么是React Native骨架?

React Native骨架是一种用于优化屏幕加载时间的技术,它通过提供一些简单的、通用的组件来达到这一目的。这个组件生成一个占位图像,代表实际数据即将出现的位置,以便在数据加载完成之前填充布局。

可用的组件

React Native骨架组件包括以下内容:

  • SkeletonContent:这是React Native骨架的核心组件。它接收具有占位符属性的子组件,并在数据准备好后自动替换这些占位符组件。
  • SkeletonPulse:这个组件是一个扩展骨架组件,可以使用震动动画来进行占位符的预视。
  • SkeletonPlaceholder:提供一个占位符容器,类似于HTML的<div>元素。
如何使用

React Native骨架非常易于使用。首先,在组件渲染之前,在SkeletonContent组件中定义所有带有占位符属性的子组件:

<SkeletonContent
    isLoading={isLoading}
    layout={[
        { key: 'title', width: 200, height: 20, marginBottom: 6 },
        { key: 'subtitle', width: 150, height: 18 },
        { key: 'description', width: 250, height: 18, marginTop: 6 },
    ]}
>
    <Text style={{fontSize: 20}} placeholder="title" />
    <Text style={{fontSize: 16}} placeholder="subtitle" />
    <Text style={{fontSize: 14}} placeholder="description" />
</SkeletonContent>

一个布局被定义为一个具有以下属性的对象数组:

  • key:组件的占位符标识符
  • width:组件的宽度
  • height:组件的高度
  • marginBottom:如果组件是最后一个子元素,则添加空白区域在元素的下面
  • marginTop:如果组件是第一个子元素,则添加空白区域在元素的上面

定义完布局后,您可以在状态更改时设置isLoading状态:

const [isLoading, setIsLoading] = useState(true);

当数据准备好时,设置isLoading状态:

setIsLoading(false);

当状态变为false时,React Native骨架将自动替换其所有占位符子元素。

总结

React Native骨架是一种简单而有效的技术,可在数据等待返回时配置占位符组件,以提高应用程序加载时间。它是一种通用技术,可以与几乎所有React Native应用程序集成。它易于使用,且可用组件可满足大多数应用程序的需要。