当我们首次打开一个app的时候会请求接口获取数据,那么获取数据的这段时间展示什么给用户呢?国内很多app都是千篇一律的用一个菊花代替(俗称loading),或者更有心一点的做一个好看一点的loading,但是这样当拿到数据渲染页面的时候会很生硬的切换,总感觉很low。

facebook首页列表是用一个接近真实布局的骨架动画来代替loading,这东西可以称之为skeleton screen或者placeholder,但是翻译过来真不知道该翻译成什么合适,这么做的好处就是在内容加载完成后可以做到流畅无缝切换真实布局,细节决定产品的质量,我觉得facebook对用户体验,交互的细节做的挺不错。先上一张我的fb截图。
rn-placeholder是rn版本的placeholder,我在次基础上做了对flastlist,listview,SectionList的适配封装。先看一下在我的开源项目中的效果:
看完上面的效果是不是感觉比传统的loading要舒服多了,下面是example:
一:flastlist,listview,SectionList使用demo
import { ListItem, ListParagraph } from 'components';
export default class Zi extends Component {
render() {
const { loading } = this.props;
return (
<ListParagraph
ParagraphLength={4} // 要渲染的条数
isLoading={loading} // loading状态
hasTitle // 是否需要title
list={this.sectionList} // 这就是SectionList的函数
/>
);
}
}
注:ListParagraph组件目前在我开源项目中,还没有添加到npm,有需要的到我项目中拿,项目地址在文章末尾
二:左图右内容布局
import Placeholder from 'rn-placeholder';
export default class Cheng extends Component {
render() {
return <Placeholder.ImageContent
hasRadius //左边的方块是否需要圆角
size={60} // 大小
animate="fade" // 动画方式
lineNumber={4} // 右边的线显示的数量
lineSpacing={5} // 行间距的距离
firstLineWidth=90% // 第一行的宽度
lastLineWidth="70%" // 最后一行的宽度
onReady={this.state.isReady} // 内容是否加载完毕,如果加载完毕会切换到你的真实内容布局
>
<Text>左图右内容布局</Text>
</Placeholder.ImageContent>
}
}
三:段落布局
import Placeholder from 'rn-placeholder';
export default class Cheng extends Component {
render() {
return <Placeholder.Paragraph
size={60}
animate="fade"
lineNumber={4}
lineSpacing={5}
lastLineWidth="30%"
onReady={this.state.isReady}
>
<Text>段落布局</Text>
</Placeholder.Paragraph>
}
}
四:还有Line(行布局),Media(图片布局),使用方法跟 三 一样。
完美收官!
项目demo地址:https://github.com/duheng/Mozi
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# React
# Native
# placeholder
# 占位
# 详解React Native监听Android回退按键与程序化退出应用
# react.js 父子组件数据绑定实时通讯的示例代码
# React-Native左右联动List的示例代码
# React-Native使用Mobx实现购物车功能
# react-native DatePicker日期选择组件的实现代码
# React Native模块之Permissions权限申请的实例相机
# 加载
# 开源
# 都是
# 左图
# 是在
# 还没有
# 行间
# 我在
# 在我
# 我觉得
# 首次
# 这就是
# 到我
# 这段
# 看完
# 真不
# 做一个
# 当我们
# 这么做
# 会很
相关文章:
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站之星安装失败:服务器环境不兼容?
制作网站的模板软件,网站怎么建设?
黑客如何通过漏洞一步步攻陷网站服务器?
如何选择高效可靠的多用户建站源码资源?
非常酷的网站设计制作软件,酷培ai教育官方网站?
江苏网站制作公司有哪些,江苏书法考级官方网站?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何通过虚拟机搭建网站?详细步骤解析
Android滚轮选择时间控件使用详解
h5网站制作工具有哪些,h5页面制作工具有哪些?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
济南网站建设制作公司,室内设计网站一般都有哪些功能?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
建站之星后台管理:高效配置与模板优化提升用户体验
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何快速上传建站程序避免常见错误?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何在IIS7中新建站点?详细步骤解析
建站主机服务器选型指南与性能优化方案解析
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
韩国服务器如何优化跨境访问实现高效连接?
建站之星图片链接生成指南:自助建站与智能设计教程
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何用AWS免费套餐快速搭建高效网站?
如何在阿里云虚拟主机上快速搭建个人网站?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
香港服务器如何优化才能显著提升网站加载速度?
利用JavaScript实现拖拽改变元素大小
如何在Windows环境下新建FTP站点并设置权限?
建站之星免费版是否永久可用?
电商平台网站制作流程,电商网站如何制作?
如何快速搭建高效WAP手机网站?
高端云建站费用究竟需要多少预算?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何在西部数码注册域名并快速搭建网站?
实现虚拟支付需哪些建站技术支撑?
定制建站哪家更专业可靠?推荐榜单揭晓
安徽网站建设与外贸建站服务专业定制方案
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
建站ABC备案流程中有哪些关键注意事项?
代购小票制作网站有哪些,购物小票的简要说明?
广平建站公司哪家专业可靠?如何选择?
大同网页,大同瑞慈医院官网?
如何在新浪SAE免费搭建个人博客?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
*请认真填写需求信息,我们会在24小时内与您取得联系。