标签:sync long detail css 构建 extern mil htm 建议
1.技术体系问题
RN和React共用一套抽象层,相对于前端,RN其实更接近Node的运行环境
ReactNative =React +IOS +Android
看RN文档时,我会发现入门基础那一块介绍的都是React的内容,进阶篇则介绍了很多IOS和Android的API
2.组件设计问题
Android和IOS一些设计组件是不共通的,这意味着,原本在React上只返回一个组件的情况下,RN中你可能需要判断平台分别返回两个版本的组件,为什么要这样? 因为对于许多组件,两个平台的风格差异实在太大,只能分而治之。
3.静态资源问题
RN应用和普通Web应用有一些天生的差别,RN应用是可以植入预定的静态资源的,也就是不需要经过任何一次请求,而都可以本地使用的静态资源,而Web应用试图使用这种资源则需要经过至少一次的网络请求并且缓存,但仍有可能被用户强清缓存等操作付之一炬。
这意味着,做性能优化时也许可以从静态资源入手了,我阅读了以下文章后 探索 react native 首屏渲染最佳实践
学习到了可以通过静态文件占位图优化RN首屏的新思路。当然,很多时候React和RN的优化思路也是共通的,例如
4.标签生效问题
5.事件核心问题
Web开发中,点击事件是核心,而在主攻移动端的RN中,触摸事件的地位则大大增强,而且除此之外,还衍生了长按事件(JS中我记得只有双击事件没有长按事件)
6.CSS3属性受限,动画效果使用方式完全变更
CSS/Animation我用不了了,因为CSS已经没了了,底层是用bridge调原生的UI构建
7.虚拟DOM到虚拟View的演变
在React中,我们使用虚拟DOM模拟现实中的DOM节点
在RN中,这个对象被换成了虚拟View,对应原生平台中的视图,因为RN中已经没有DOM了
8.UI呈现的变化
(以下参考自: http://blog.ilibrary.me/2016/12/25/react-native-internal)
UI的描述和呈现分离开了。
在react native 里面,1和2是不变的,也是用html语言描述页面有哪些功能,然后stylesheet告诉浏览器引擎每个控件应该长什么样。并且和浏览器用的是同一个引擎。
在步骤3里面UI控件不再是浏览器内置的控件,而是react native自己实现的一套UI控件(两套,android一套,ios一套),这个切换是在MessageQueque中进行的,并且还可以发现,他们tag也是不一样的。参考链接:http://blog.ilibrary.me/2016/12/25/react-native-internal
12.导航有提供专门的模块:比如react-navigation和react-native-navigation
13.动画要用Animated控件,不能自己写CSS3的动画属性了,比如Animation和transition
标签:sync long detail css 构建 extern mil htm 建议
原文地址:https://www.cnblogs.com/penghuwan/p/11515692.html