react 基础 import React from ' react '; export default class App extends React .Component { constructor 常用属性如下:(此组件与TouchableHighlight 的 区别在于并没有额外 的 颜色 变化,更适于一般场景) activeOpacity 指定封装 的 视图在被触摸操作激活时以多少不透明度显示(通常在0到1 有触摸操作时显示出来 的 底层 的 颜色 onPress Text 显示文字 的 组件 ellipsizeMode 取值(‘head’, ‘middle’, ‘tail’, ‘clip’) head:从文本 的 开头进行截断 showsHorizontalScrollIndicator 当此属性为true 的 时候,显示一个水平方向 的 滚动条 。 FlatList data 数据 renderItem 每一项 的 渲染组件 onEndReached 当列表被滚动到距离内容最底部不足onEndReachedThreshold 的 距离时调用 onEndReachedThreshold
2核2G云服务器 每月9.33元起,个人开发者专属3年机 低至2.3折
至于 FlatList SectionList 自带 的 上拉加载功能,根本就是骗人 的 。 不满屏就回调,上拉若干次后则不再回调 等等,且不想再吐槽。 其实就是个小问题,解决就行了。 refresh.gif 源码贡献: npm 引入:" react -native-kk-refresh": "1.0.0" npm 源码: react -native-kk-refresh github 源码: 仔细想想还是给个使用 demo 吧 /// 使用此刷新 FlatList 不用考虑刷新 的 状态和控制刷新 的 状态。 iOS 如上文章修改后,可以将 RN 中所有的下拉刷新 更改 为 MJRefresh或者项目中自己 的 刷新组件(自定义刷新组件)。 更改 为 MJRefresh 后,刷新效果和原生一样。 刷新修改后,真的还能看出来是 RN 还是原生APP吗?
,是由多个图层 的 颜色 决定 的 ,GPU 会渲染这些图层混合后 的 最终 颜色 ,但是,iOS 和 Android 的 GPU 渲染机制是不一致 的 。 对于 iOS 来说,出现红色区域,就说明出现了 颜色 混合: Card1 的 几个 View 都设置了非透明背景色,GPU 获取到顶层 的 颜色 后,就不再计算下层 的 颜色 了 Card2 的 Text View 背景色是透明 的 有一个 颜色 指示条:白 -> 蓝 -> 绿 -> 粉 -> 红, 颜色 越往后表示过度绘制越严重。 比如说 Android 通过 resizeMethod 的 resize 更改 图片字节大小,虽然也可以解决问题,但是这个算法还是在前端运行 的 ,还是会占用用户内存资源。 demo 非常简单,一个基于 FlatList 的 奇偶行 颜色 不同 的 列表。
{/* 错误 的 实例:不生效 */} <view style={[styles.aaa,{color:'red'}]}></view> react native 的 魅力在于能够使用系统原生 的 组件。 但支持更多但来源,比如网络图片, 本机 磁盘图片,照相机图片等。 下⾯ 的 例⼦分别演示了如何显示从本地缓存、网络乃至base64拉取图片。 RN0.43版本中引⼊了了 FlatList ,SectionList和VirtualizedList,其中VirtualizedList是 FlatList 和SectionList 的 底层实现。 FlatList 和 SectionList 的 底层实现:VirtualizedList通过维护一个有限 的 渲染窗⼝(其中包含可⻅ 的 元素),并将渲染窗⼝之外 的 元素全部用合适 的 定⻓空⽩空间代替 的 ⽅式,极⼤ 的 改善了内存使 import React ,{Component} from ' react '; import {View,Text,StyleSheet,Button, FlatList ,RefreshControl} from
- 80}},那这样滚动距离到120时, 滚动条 到底部了,视频播发控件 的 区域距离屏幕顶部还有80。 另外注意修改字段, REACT _CLASS = "RNFixedScrollView",这个与JS 的 模块 的 名字存在映射。 height: windowHeight- 80}}/> </RNFixedScrollView> </View> Tab导航控件,第二个tab内容区域嵌套了 FlatList import {StyleSheet, View, Text, Platform, Image, TouchableOpacity, Animated, Dimensions, FlatList } from ' react -native'; import React , {Component} from ' react '; import {PagerTabIndicator, IndicatorViewPager
概要 本文主要对 React Native 0.50 的 关键性 的 更新做个讲解和开发适配指导,希望能对从事 React Native开发 的 你有所帮助: 在兼容性方面新增了对Android8.0、iPhone X 和 maximumTrackTintColor在Android和iOS上 颜色 颠倒 的 问题,这是一个比较有意思 的 Bug: 对于如下代码: <Slider style= minimumTrackTintColor 修复了View Style 的 overflow hidden问题。 很久以来overflow样式在Android默认为hidden而且无法 更改 。 组件,SwipeableFlatList是在 FlatList 的 基础上添加了侧滑显示菜单 的 功能,类似于侧滑删除 的 效果。 另外也可以关注我 的 新浪微博,或者关注我 的 Github来获取更多有关 React Native开发 的 技术干货。 参考: React Native开发视频教程
React Native在2017年经历了众多版本 的 迭代,从本人接触 的 0.29版本开始,到前不久发布 的 0.52版本, React Native作为目前最受欢迎 的 移动跨平台方案。 虽然,目前存在着很多 的 功能和性能 的 缺失,但是不可否认 的 是 React Native确实在进步。 和 maximumTrackTintColor在Android和iOS上 颜色 颠倒 的 问题。 4,修复了View Style 的 overflow hidden问题。 很久以来overflow样式在Android默认为hidden而且无法 更改 。 通用 的 功能有: 新增SwipeableFlatList组件,SwipeableFlatList是在 FlatList 的 基础上添加了侧滑显示菜单 的 功能,类似于侧滑删除 的 效果。
CSS Token 配置组件圆角 Bug FixesDatePicker: 修复重置日期后面板月份未重置问题修复时间选择器滚动错误Dialog: 修复 preventScrollThrough 未实现 的 问题修复出现对于 滚动条 的 问题详情见 Bug FixesForm: 修复 help 插槽不生效 的 问题Dialog: 修复 preventScrollThrough 为 false 情况下,body 间去了 滚动条 宽度Table: 树形结构, /非受控不能点击 的 问题详情见:https://github.com/Tencent/tdesign- react /releases/tag/0.37.1Miniprogram for WeChat 发布 ,具体查看文档Rate: 新增 CSS Variable 调整 Rate 辅助文本、选中、未选中及禁用态图标 颜色 ,具体查看文档Input: 移除 external-classes 属性中 的 t-class-placeholderInput : 新增 CSS Variable 调整抽屉背景、列表项标题、列表项图标、列表项下边框 颜色 ,具体查看文档 Bug FixesTabs: 修复值等于 0 时不能正常切换 的 问题Textarea: 修复超出
二. React Native 移动平台提供了运行JS代码 的 引擎,而JS可以实现动态配置并表达逻辑信息,二者 的 结合可以概括 React Native所要解决 的 问题:基于JS,具备动态配置能力 的 移动端开发框架 React 列表 的 每一项都会带有一个key属性,在 React 进行虚拟dom diff时,作为每个列表项 的 标记。 同时,由于滑出视野范围 的 节点没有被及时回收,在大数据量时,会导致内存占用迅速增大,导致整个app卡顿。 通过修改,复用节点, react 就会认为仅仅是key1 更改 了位置,只会引发重排,减少渲染时间。 (三)ReactNative FlatList RN新版本中推出 的 List,其实就是官方实现 的 复用列表节点 的 List,性能显著提升。 参考文档: React Native 从入门到原理 携程是如何做 React Native优化 的 Qunar React Native 大规模应用实践
import React , { PureComponent } from ' react ' import { View, Text, StyleSheet } from ' react -native' import 首页要实现列表功能,采用组件 FlatList 。 /widget/Text' 在render方法中返回 FlatList 并设置它 的 属性 render() { return ( <View style={styles.container < FlatList data={this.state.dataList} //请求 的 数据 pageIndicatorTintColor:控制器上点 的 颜色 ,string类型。 currentPageIndicatorTintColor:当前亮点 的 颜色 ,string类型。
) 滚动条 组件:RScroll(基于 react 自定义 滚动条 ) 001360截图20201218154255932.png 004360截图20201218154521421.png 006360截图20201218154707923 让你 的 网页瞬间拥有SEO功能。 image.png 目前在github上 的 star高达60K+,非常受开发者青睐 的 一款 React SSR框架。 react 开发 的 一个自定义虚拟 滚动条 组件RScroll,贯穿于项目中 的 各种滚动场景。 m4.gif 支持是否原生滚动、自动隐藏 滚动条 、尺寸/ 颜色 等功能。 React .js自定义弹窗组件 项目中用到 的 所有对话框均是基于 react 自定义弹窗RLayer组件。 m4.gif 一款轻量级基于 react .js开发 的 PC桌面端弹框组件,让你 的 网页弹窗变得千变万化。
(不包括被积木分类菜单遮住 的 部分),随着 滚动条 的 滚动,可视工作区中 的 内容在变化,但是可视工作区整体 的 宽度/高度是不变 的 。 Webpack项目中使用时需要使用google-closure-library-webpack-plugin插件进行解析,具体配置如下: 安装依赖包 声明googTS描述 在文件src/ react -app-env.d.ts toolboxSelected: '#292b32', // 积木分类菜单,分类名称文本 颜色 toolboxText: '#d5c1c1', // 滚动条 颜色 scrollbar: 'rgba(255, 255, 255, 0.2)', // hover状态下, 滚动条 颜色 scrollbarHover: 'rgba(255, 255, 255, 滚动条 位置 示例中把积木区垂直 滚动条 移动到了工作区左侧,其主要实现方式为重写scratch-blocks/scrollbar.js中 的 方法,重写后 的 方法如下。
indicatorStyle # 滚动条 的 样式,基本只是设置 颜色 ,总共3个 颜色 ,默认是黑色 的 ,此处修改为白色 的 。 使右侧 的 滚动条 一直处于显示状态。 总结一下右侧 的 滚动条 一直处于显示状态 的 原理: UIScrollView 的 滚动条 是UIImageView UIScrollView被flashScrollIndicators后,过一段时间,他 的 滚动条 就会被调用 , 更改 UITextView里 的 文字 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView _textV.text # 所以需要在每次 更改 文字内容时,通过 attributedText 来 更改 内容文字。
如果我们想知道自己 的 屏幕以这种长度 的 计量下是多少单位,可以通过引入 react -native包中 的 Dimensions拿到,同时还可以查看 本机 的 像素比例是多少。 你还可以指定"color"属性来修改按钮 的 颜色 。 ios_backgroundColor='x' 在iOS上,自定义背景 颜色 。当开关值为false或开关被禁用时(开关是半透明 的 ),可以看到这个背景 颜色 。 在 iOS 上设置此 颜色 会丢失按钮 的 投影。 tintColor='x' 关闭状态时 的 边框 颜色 (iOS)或背景 颜色 (Android)。 value=布尔值变量 表示此开关是否打开。 showsHorizontalScrollIndicator(布尔值):当此属性为true 的 时候,显示一个水平方向 的 滚动条 。
state 新增钩子getSnapshotBeforeUpdate----保留渲染前 的 一些信息 getSnapshotBeforeUpdate 的 应用案例--- 滚动条 scrollTop和scrollHeight 它使得组件能在发生 更改 之前从 DOM 中捕获一些信息(例如,滚动位置)。此生命周期方法 的 任何返回值将作为参数传递给 componentDidUpdate()。 — 滚动条 , 滚动条 向下滚动 的 距离也就是元素顶部被遮住部分 的 高度。 scrollHeight: 因为子元素比父元素高,父元素不想被子元素撑 的 一样高就显示出了 滚动条 ,在滚动 的 过程中本元素有部分被隐藏了,scrollHeight代表包括当前不可见部分 的 元素 的 高度。
我们在之前已经学习过 react 生命周期,但是在 16 版本中 will 类 的 生命周期进行了废除,虽然依然可以用,但是需要加上 UNSAFE 开头,表示是不安全 的 。 React 16 废弃 的 生命周期有 3 个 will: componentWillMount componentWillReceiveProps componentWillUpdate 废弃 的 原因,是在 React 16 的 Fiber 架构中,可以中间进行暂停重启操作,调和过程会多次执行 will 周期,不再是一次执行,失去了原有的意义。 新生命周期 更改 的 生命周期主要发生在更新时 [c8a2fd4e-e7bc-4a10-9928-3f9a444d390e.png] getDerivedStateFromProps 该生命周期是从父获取数据时使用 的 本节概念不是很多,主要是了解了 react 为了 fiber 提出了两个新生命周期。下一小节我们学习下 react 中 的 context 概念。
02 更改 选中文本 的 背景 颜色 使用选择器::selection,可以 更改 选中文本 的 背景 颜色 : ::selection { color: #ececec; background: #222831 当你使用这个属性时,注意使用良好 的 颜色 对比度组合。 在浏览器中隐藏难看 的 滚动条 我以前甚至不知道这是可以做到 的 。 display: none; /* Hide scrollbar for IE and Edge */ html { -ms-overflow-style: none; 如果你禁用了 滚动条 请注意,Firefox停止了对 滚动条 隐藏问题 的 支持,以上代码似乎是一个技巧,可以执行与我包含 的 其他代码相同 的 功能。
这篇接上篇文章,继续讲解CSS 的 基础用法。 背景可以设置很多,比如背景 颜色 ,背景图片,背景定位,背景重复,背景关联, 1).背景 颜色 2).背景图片 <div style fixed 固定 不出现 滚动条 scroll 出现 滚动条 no 没有 滚动条 6).背景大小 content-box 裁剪文本内容区域 padding-box 裁剪内边距区域 border-box 裁剪外边框区域 参考文档:W3C官方文档(CSS篇) 这篇文章主要介绍了CSS样式 更改 篇中 的 背景 Background 的 基本设置,希望让大家对CSS选择器有个简单 的 认识和了解。
autohidemode:false 当调用“niceScroll”你可以传递一些参数来定制视觉方面: cursorcolor - 十六进制改变光标 颜色 #FFF” cursorborderradius - 以像素为光标边界半径,默认为“递四方” zIndex 的 - 改变z-index值 的 滚动条 的 div,默认值是9999 scrollspeed 上缩放框激活时,间距输出/输入(默认:true) grabcursorenabled,显示“抢”图标的div touchbehavior = true时,(默认:true) autohidemode,如何隐藏 滚动条 的 作品