前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React Native移动端跨平台开发尝试 | 技术创作特训营第一期

React Native移动端跨平台开发尝试 | 技术创作特训营第一期

原创
作者头像
花花Binki
发布2023-08-27 00:37:52
3822
发布2023-08-27 00:37:52
举报
文章被收录于专栏:岚的工作随笔岚的工作随笔

前言

半个月前,公司发来了一个新的需求,为当前的CRM系统做移动端App。于是作为公司“技术探索者”的我理所应当得接下挑战,负责学习并传授组内其他人员。本文主要是环境搭建、后端过渡到前端、移动端开发注意事项等个人经验分享,并不专业,如有纰漏还望指正。


01. 为什么是React Native

React Native的github
React Native的github

当前的主流的移动端跨平台方案中,FlutterReact Nativeuni-app占据着主要地位。最后一位uni-app他的主战场更多的是小程序,在安卓、IOS的性能上不如前两位。

对比

React native

Flutter

学习成本

容易

困难

性能

更高

热修复

原生支持

需要其他框架

厂商

Face Book

Google

因为是我们组主要是后端人员,前端的Web开发略有了解,对性能要求不是很高,所以选择了前者


02. 环境搭建

环境选择WindowsAndroid

官方地址:

英文水平不是很好的情况可以选择国内站,缺点是更新可能不是很及时

React Native环境需要
React Native环境需要

按照官方的教程,基本不会出现什么卡顿

踩坑及解决方案

  • 在我本地电脑的Node版本来到了11 在后续会出现一些意料外的错误

解决方案:推荐使用16 这个大版本

  • 这一套完整的下来,大概需要20G左右的空间,其中模拟器占9G左右,默认都是存放在C盘。

解决方案:①修改Gradle的仓库位置②修改模拟器路径

路径: C:\Users\{user}\.android\avd

代码语言:text
复制
avd.ini.encoding=UTF-8
# 原来位置是C盘 
path=D:\RNpackage\sim\Pixel_6_API_34.avd
path.rel=avd\Pixel_6_API_34.avd
target=android-34

后端开发需要补充的点

Node:相当于JavaJDK

npm: 类似Maven

如果上述一切正常,你就会得到如下一个界面

官方样例
官方样例

03. 补充学习

在进入正式开发之前,还需要补充一些前端 + 移动端的基础

ES6

ES6全称ECMAScript2015,是JS的版本,至于为什么单独强调这版本,这就像JDK8一样。了解更详细内容推荐阮一峰老师的ES6 入门教程

以下列举几个常用的特性

①变量声明let,const

var是在刚学前端时常用的命令,由于一些作用域的问题,会出现一些难以预料的Bug。let和const的出现很好的解决了问题,前者是局部的变量,后者是局部的常量。在开发中避免使用var

②函数声明:箭头函数

在后端开发中,相对应的就是拉姆达表达式。这里更为常见,是可以规避一些问题。

③类的声明

对于只接触一点前端开发的我们,完全没有想过JS中还有类,声明方式也是用class,即使他不是在ES6中才有的。

TypeScript

一个新技术的出现,必然是为了弥补前者的不足。在JS中,在类型方面,我们称之为弱类型。

代码样例:

代码语言:javascript
复制
var x = 1;
x = "2"; // 不会报错

如果这样,会使在执行过程中出现意外的错误。TypeScript就是为了解决弱类型才引入(还又一些其他扩展,不过多介绍)。

以上换成后者的写法:

代码语言:TypeScript
复制
let x: number = 1;
x = "2"; // 报错 x 类型为`number`,不能转成 `string`

React

React Native的语法,大多数还是按照React的规则来使用的。所以如果又后者的开发经验,前者不会又太多问题。React的思想就是All in JS,所以我们能够在代码中看到,一个文件中,HTML标签、CSS样式,JS脚本都用JS的形式来表示。由此产生了一种新的文件类型,叫做JSX


JSX/TSX

JSX可以理解为JS的扩展类型,由React提出,后续在其他框架也可以看到使用。TSX就是TS(TypeScript)的扩展。

移动端知识

UI结构
Android UI结构
Android UI结构
页面跳转形式

移动端的页面跳转,像是一个栈,每次点击一个页面会压栈/替换。上一个页面不一定要消失,也许会堆叠在一起

04. 体验感悟

让后端同事从0开始做,能明显感受到前端工程化所带来的挑战与不适,如果不是公司实在没任务了,也不会鬼使神差的来做这个。目前两周过去了,每一次敲代码都要来自网上的资料。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 01. 为什么是React Native
  • 02. 环境搭建
    • 踩坑及解决方案
      • 后端开发需要补充的点
      • 03. 补充学习
        • ES6
          • ①变量声明let,const
          • ②函数声明:箭头函数
          • ③类的声明
        • TypeScript
          • React
            • JSX/TSX
              • 移动端知识
              • 04. 体验感悟
              相关产品与服务
              云开发 CloudBase
              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档