当我们首次打开一个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权限申请的实例相机
# 加载
# 开源
# 都是
# 左图
# 是在
# 还没有
# 行间
# 我在
# 在我
# 我觉得
# 首次
# 这就是
# 到我
# 这段
# 看完
# 真不
# 做一个
# 当我们
# 这么做
# 会很
相关文章:
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
网站制作话术技巧,网站推广做的好怎么话术?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
,如何利用word制作宣传手册?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
如何设置并定期更换建站之星安全管理员密码?
中山网站制作网页,中山新生登记系统登记流程?
定制建站价位费用解析与套餐推荐全攻略
南宁网站建设制作定制,南宁网站建设可以定制吗?
如何通过虚拟机搭建网站?详细步骤解析
c# 在ASP.NET Core中管理和取消后台任务
如何通过NAT技术实现内网高效建站?
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星如何实现网站加密操作?
常州企业建站如何选择最佳模板?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
广州建站公司哪家好?十大优质服务商推荐
深圳网站制作培训,深圳哪些招聘网站比较好?
如何在Windows虚拟主机上快速搭建网站?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
网站制作说明怎么写,简述网页设计的流程并说明原因?
建站之星如何开启自定义404页面避免用户流失?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
如何在宝塔面板创建新站点?
,怎么用自己头像做动态表情包?
,网页ppt怎么弄成自己的ppt?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何选择服务器才能高效搭建专属网站?
建站之星如何助力企业快速打造五合一网站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
宝塔建站助手安装配置与建站模板使用全流程解析
宝塔新建站点为何无法访问?如何排查?
如何用狗爹虚拟主机快速搭建网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何快速重置建站主机并恢复默认配置?
如何通过cPanel快速搭建网站?
如何选择美橙互联多站合一建站方案?
建站之星如何通过成品分离优化网站效率?
建站之星如何优化SEO以实现高效排名?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
在线制作视频网站免费,都有哪些好的动漫网站?
C++时间戳转换成日期时间的步骤和示例代码
如何实现建站之星域名转发设置?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
制作网站外包平台,自动化接单网站有哪些?
如何在IIS服务器上快速部署高效网站?
定制建站流程解析:需求评估与SEO优化功能开发指南
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
再谈Python中的字符串与字符编码(推荐)
如何快速查询网址的建站时间与历史轨迹?
*请认真填写需求信息,我们会在24小时内与您取得联系。