React Native预设占位placeholder的使用


Posted in Javascript onSeptember 28, 2017

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

facebook首页列表是用一个接近真实布局的骨架动画来代替loading,这东西可以称之为skeleton screen或者placeholder,但是翻译过来真不知道该翻译成什么合适,这么做的好处就是在内容加载完成后可以做到流畅无缝切换真实布局,细节决定产品的质量,我觉得facebook对用户体验,交互的细节做的挺不错。先上一张我的fb截图。

React Native预设占位placeholder的使用

rn-placeholder是rn版本的placeholder,我在次基础上做了对flastlist,listview,SectionList的适配封装。先看一下在我的开源项目中的效果:

React Native预设占位placeholder的使用

看完上面的效果是不是感觉比传统的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>
  }  
 }

React Native预设占位placeholder的使用

三:段落布局

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>
  }  
 }

React Native预设占位placeholder的使用

四:还有Line(行布局),Media(图片布局),使用方法跟 三 一样。

完美收官!

项目demo地址:https://github.com/duheng/Mozi

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
Jquery 组合form元素为json格式,asp.net反序列化
Jul 09 Javascript
Js保留小数点的4种效果实现代码分享
Apr 12 Javascript
获取中文字符串的实际长度代码
Jun 05 Javascript
JavaScript组合拼接字符串的效率对比测试
Nov 06 Javascript
JavaScript forEach()遍历函数使用及介绍
Jul 08 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
JavaScript事件代理和委托详解
Apr 08 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
vue+elementui 实现新增和修改共用一个弹框的完整代码
Jun 08 Vue.js
import与export在node.js中的使用详解
Sep 28 #Javascript
AngularJS 仿微信图片手势缩放的实例
Sep 28 #Javascript
AngularJS路由删除#符号解决的办法
Sep 28 #Javascript
深入理解React高阶组件
Sep 28 #Javascript
基于webpack 实用配置方法总结
Sep 28 #Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 #Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 #jQuery
You might like
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
AngularJS 实现JavaScript 动画效果详解
2016/09/08 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
Python Requests 基础入门
2016/04/07 Python
Python模拟用户登录验证
2017/09/11 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
学生请假条格式
2014/04/11 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
语文课外活动总结
2014/08/27 职场文书
一份文言文检讨书
2014/09/13 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
感谢信范文大全
2015/01/23 职场文书
检讨书范文
2015/01/27 职场文书
营业员岗位职责范本
2015/04/14 职场文书
个人承诺书格式范文
2015/04/29 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
小学三年级作文之写景
2019/11/05 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS