首页 > 其他分享 >Taro vs React Native 的八大差异

Taro vs React Native 的八大差异

时间:2022-12-06 19:35:15浏览次数:72  
标签:Taro 支持 React vs 组件 RN

Taro vs React Native 的八大差异

Taro vs React Native 的八大差异

桂子 桂子 Web开发,深圳  

API风格

Taro 与 RN 的一些组件及字段并不完全一致,以 RN 为主 vs 以 Taro 为主,
如 RN 的 Touchable* 为 onPress 而 Taro 的 View 为 onClick

技术栈约束

1. 选用轻量第三方库,按需引入,按需加载
2. RN 和 Taro 版本在开发阶段应尽早启用新版本

样式

1. 行内 vs 外联:style={styles.abc} 与 className="abc"
2. 外联时,像素乘以 2,RN 不需要单位
3. 内联时,h5 需要 px 单位,RN 不需要单位, Taro 默认以 750px 作为换算尺寸标准
4. box-sizing: RN全是 container-box, Taro 默认为 content-box
5. position 在 RN 默认为 relative, 不支持 fixed, 而 Taro 需要手动配置,才能让子组件的绝对定位和 zIndex 生效
6. View 和 Text 的默认行高 与 RN 默认行高并不一致, RN 行高未配置
7. Text 在 RN 默认为 display-block 而 Taro 为 inline,导致 padding、margin、width、height 行为不一致,间接导致 text-align: center 不起作用
8. display: grid 在 RN 并不支持
9. RN 安卓对 zIndex 支持不好,需要 elevation
10. RN 安卓的阴影不平滑,不支持 box-shadow
11. RN 不支持伪类 :before :after
12. RN 不支持类层叠样式
13. Taro 动画 Api 与 RN 动画 Api 不一致
14. RN 仅支持 flex 不支持 grid
15. RN 的 background 仅支持 backgroundColor, 不支持 background-image,
渐变色的实现需要借助 react-native 的第三方包 react-native-linear-gradient
16. RN 不用指定 borderStyle, Taro 需要指定 borderStyle
17. RN 的 font-weight样式只支持400、700、bold、normal这几个值

图片

1. 图标方案:svg vs base64+png vs sprite
2. 图标考虑深色与浅色、不可用状态的颜色变化
3. RN.svg 不支持,需要引入第三方库(也不能完美支持), Taro 支持 svg 格式的图片

组件

1. 是否二次包装 Taro 的 Text、Image,以及 ScrollView,FlatList
2. Taro.ScrollView 的 height 需要手动指定
3. Taro 不支持 React.Fregment
4. Taro.View 有 onClick,而 RN.Touchable* 有 onPress
5. Taro 不支持全局组件,如 Alert 和 Loading,且 Loading 在页面切换时会丢失
6. RN 允许全局组件,Taro 因小程序是由页面为单位,故没有全局组件,如 Loading
7. 两个页面级别组件不能 import (不包含子组件),否则 Please do not register multiple Pages

Header / Footer

1. RN 有 statusBar,有深色与浅色主题两个区别,图标也应考虑两个主题
2. RN 的 footer 得考虑 IPhone 的全面屏影响
3. 影响到右上角的按钮和状态类图标及动画

Webview

1. Taro.Webview 只有 src 属性,js 通讯只能同源(第三方支付有问题),而 RN.WebView 有 source 支持 html 属性,js 通讯允许不同源
2. Taro.Webview 事件勾子只有 onl oad,RN.WebView 可以监听 url 的变化和 method,用于第三方支付完成的回调特别友好

Hooks

1. Taro 使用 Promise.finally 代码块中用 setState 等 hooks 可能不起作用,尽量在 then 和 catch 里使用 hooks
2. Taro 的一些全局 API 脱离 React 的更新机制,如徽标数字的更新

发布于 2020-10-31 11:54

标签:Taro,支持,React,vs,组件,RN
From: https://www.cnblogs.com/sexintercourse/p/16960278.html

相关文章

  • React的生命周期
    React的生命周期中有常用的和不常用的。常用的有:1constructor():完成了数据的初始化。注意:只要使用了constructor()就必须写super(),否则this指向会出错。-2render():re......
  • Taro踩坑记之React-Native环境教程
    Taro踩坑记之React-Native环境教程LaxusJ关注0.9892019.07.2722:56:55字数424阅读10,841当前环境TaroCLI1.3.10environmentinfo:System:OS:macOS10.14.......
  • React的10种hook
    React目前提供的HookuseState设置和改变state,代替原来的state和setStateuseEffect代替原来的生命周期componentDidMount,componentDidUpdate和componentWillUnmount......
  • VsCode更换MarkDown样式到底能有多好看?
    vscode到底有多强大?先看看MarkDown笔记的预览效果这只是一种插件谁再让我用别的软件写代码我就把这篇文章扔过去如何操作?1、安装插件:在扩展中搜索MarkdownPreview......
  • vscode连接远程服务器的指定虚拟环境
    ctrl+shift+p选择的编译器将是下次打开vscode连接远程服务器的初始虚拟环境例如这里我选择了tesgnn这项(conda虚拟环境),再新建远程服务器连接,初始界面就是这样的:上面命......
  • 在windows下导入react项目并且打包编译后部署到nginx上
     在windows下导入react项目并且打包编译后部署到nginx上一、安装npm二、创建react项目三、安装nginx四、总结最近接手了公司的一个django项目,这是应该前后端分......
  • VS 2017 调试窗口显示“ C#编译器内部错误”
    调试时,我尝试评估简单的表达式,例如inta=2;在即时窗口中。一个错误C#编译器中的内部错误解决方式:调试-》选项-》常规-》使用托管兼容模式(勾选)  ......
  • W11中使用VScode远程开发之宝塔用户自动登录
    宝塔面板开启ssh,加密方式选择rsa下载秘钥,放值目录:C:\Users\本机用户\.ssh修改该目录下的config文件Host111.112.113.114HostName111.112.113.114UserrootF......
  • 淘宝VS拼多多
    作为一个软件设计者,我们要学会向别人学习,什么样的软件可以更好的受到用户的欢迎。拼多多:优点:1.低价策略,面向消费水平较低的人群,用低价吸引顾客,吸引用户。2,傻瓜式操作,引......
  • vscode如何设置为左边编辑器右边浏览器
      插件过时了?  参考:https://www.cnblogs.com/wan520/p/14259240.html......