加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – 为Android和iOS开发组件的正确方法是什么?

发布时间:2020-12-15 20:14:43 所属栏目:百科 来源:网络整理
导读:在我们公司,我们有几个为iOS构建的React Native组件.它们都是基于 JavaScript的组件,所以它们也应该在React Native for Android下工作.此外,我们拥有的大多数组件应该只在设计风格上有所不同,因此我们需要在两个平台之间编码这些差异. 启用此组件以支持Andro
在我们公司,我们有几个为iOS构建的React Native组件.它们都是基于 JavaScript的组件,所以它们也应该在React Native for Android下工作.此外,我们拥有的大多数组件应该只在设计风格上有所不同,因此我们需要在两个平台之间编码这些差异.

启用此组件以支持Android的正确方法是什么?我们是否必须使用if检查应用程序平台并相应地更改样式?如果我们想要分离两个文件中的组件,Component.android.js和Component.ios.js,React Native会根据它运行的平台自动检测它需要使用哪一个?

解决方法

我更喜欢一种非常简单的解决方案.只需使用文件扩展名:.ios. vs .android.

enter image description here

例如.看看我的导航我在android nav中使用android工具栏,如果我愿意,我可以使用navigatorIos for ios.应用程序平台将根据扩展名正确加载相应的平台文件.这意味着我只是正常加载它:

var Nav = require('./jsx/Nav');

我喜欢遵循React谈到的声明式方法,因此:

1)按照功能/行为而不是平台来组织文件,因为具有不同扩展名的相同文件将彼此相邻.

2)无论是显性还是隐式平台都不相关,因为当它是不同的平台特定组件时,您只会将文件拆分为扩展(因此这是固有的)

3)永远不需要在代码中处理不同的平台行为.

4)这是一个组合解决方案,正如我已经提到的:跨平台的文件不需要平台扩展(在某些情况下甚至可能不需要扩展的抽象类).

这是一个简单的解决方案,我不知道它对大型项目的扩展程度如何;但我完全是为了声明它的简单性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读