当前位置:

首届官方 React Native "吐槽"大会?

访客 2024-04-23 669 0

如果大家有看到抄袭的可以马上通知我,我一定会拿起法律武器,维护自身!之前没太在意,想着自己读者不算多,但是最近看到有公众号博主因此被起诉了的,所以觉得还是有必要注意一下。

导读

昨天ReactNative团队在社区github仓库的Issues里发了一个话题,《WhatdoyoudislikeaboutReactNative?》,中文就是说,ReactNative现在还有哪些地方让你不满意的?官方搞这个话题,难道是为了帮助被RN折腾已久的人们排解一下负面情绪么?哈哈~

我心想让人夸不容易,但是让人吐槽还不容易么?本来以为这个话题会被瞬间攻陷,但实际还是有点意外,截至我写文章的时候也只有13个回复而已。当然,好像还有些回复是被官方秒删了

我把这些回复都看了一遍,有一些确实是在使用RN的过程中,让人觉得比较恼火的地方。下面我随便挑了几个我觉得还不错回复翻译一下,不知道这些问题是否也在同样困扰着你呢?欢迎大家在下方留言讨论。

准备好了么?RN非官方皇-家翻译来啦~

1.实时重载引起问题

原文:

在用了Typescript后,我必须经常重载我的应用。当使用实时重载时,应用确实重载了,但是却显示红屏报错了,提示UnabletofindmoduleforEventDispatche。这个情况已经出现有一段时间了。实时重载的问题,再加上热重载也经常不稳定,就会让人在开发时候觉得很恼火。这也会导致Xcode打印很多没用的日志,还有很多其他相关的类似问题。

Marno:

确实是这样的,实时重载和热重载经常会导致一些问题,红屏也就算了,打不了手动reload下,可时不时的就让packager挂了,就非常难受了。

2.吐槽四连

Marno:

这个哥们就显得有点激动了,来了个四连发,看来是“受迫害”已久了,哈哈哈~隔着屏幕都能感觉到他在使用RN时的心情。他的这几个评论我就不一个一个地翻译了,不过感觉他应该是不怎么懂原生开发的,所以会有这些问题。

可能对于很多Web转RN的人来说都会遇到类似的问题,比如原生项目的配置之类的,但这对于原生转RN的人来说又都不是问题,所以可能官方并没有太在意这点,这对于一些新手来说也显得有点不太友好。

不过我觉得这些问题并不要紧,不去完善也没有什么问题,当务之急还是把更多精力集中到发布v1.0版本上。

3.扩展cli功能

原文:

在启动packager之后,我希望可以通过命令行来控制App的运行。比如可以通过命令行控制实时重载,开启debugger之类的。

这些功能会提升开发体验,现在这种通过晃动手机或者按快捷键打开来DevMenu的方式是非常有争议的。

可用的命令应该在你运行react-nativestart之后就提出出来,比如:

MetrBundlerready.Loadingdependencygraph,done.Tohotreloadpress"r"Torestarttheapppress"R"Totoggledebuggingmodepress"d"

Marno:

这个是目前被点赞最多的回复了,简而言之,就是他希望可以通过命令行控制应用重载、打开调试这些。我也觉得现在这种通过晃动手机打开DevMenu的方式特别麻烦,有时候手都快晃断了,菜单还没打开,或者晃了半天菜单打开了,可一停下的时候一不小心(在不经意之间,常指做错了一件事情)(在不经意之间,常指做错了一件事情)碰到屏幕就给弄关上了。而且老这么在办公室晃动,也有点太…

所以我是很赞同他的想法的。虽然不知道能不能通过命令行实现,但是至少可以提供个设置项,允许把常用的几个操作悬浮在屏幕上啊。

4.Expo!!

原文:

认真脸.jpg,现在这种通过expo初始化和运行项目的方式一点都不酷,不要误解我,并不是说我不喜欢Expo,而是它太过于沉重了,无论你的项目多简单,用了Expo后打个包都要20M起步了。

Marno:

这位兄弟就有点“过分”了,谁让你必须用Expo了呢?觉得太占体积可以不用啊!不过话说回来这个问题也确实存在,也一度困扰了我很久,那段时间想把项目精简一下,所以搜了下有没有精简Expo的办法,后来还是官方论坛找到了Expo官方回复,说目前没有任何办法精简的。

不过好在他也认识到这个问题了,所以从SDK32开始就在重构了。从最近发布的SDK33来看,变化还挺大的,把很多非核心的功能移到了单独的仓库中,引用的时候就不能直接importXXXform'expo'了,要通过指定的模块引入,这么做就是为了减小体积的。

5.快用Swift吧!

原文:

我认为这样做有利于很多JS开发者(至少对我而言)快速的浏览iOS的原生代码。因为比起Swfit或者其他现在化编程语言来说,Objective-C不太利于阅读。另外,现在也有很多iOS原生项目也在使用Swift进行开发了。鼓励在RN中使用Swfit可以使得调试原生或编写代码变得相对简单。

我个人建议RN:

  1. 将通过CLI生成的AppDelegate.m,AppDelegate.h还有main.m文件改为用Swift实现。像Flutter就提供了可以选择使用OC,Java或者Swift,Kotlin来初始化项目的功能。
  2. 鼓励更多的社区仓库使用Swift写iOS

Marno:

赞同,赞同,赞
快使用Swift,哼哼哈!
Swift,一时用一时爽,一直用一直爽!

6.我要内置导航器

原文:

现在的ReactNative没有内置一个合适的原生navigation库,应该搞一个可以使用native线程显示页面切换动画的导航器,而不是必须通过阻塞js线程。

Marno:

哈哈哈~天下苦navigation久已,不过现在已经好多了,基本被react-navigation一统天下了。刚开始的RN是内置了导航器的,而且搞了还搞了不止一个方案,但是效果都不怎么理想。与此同时社区出现了一些好用的导航器,尤其以react-nativetion为首

所以后来官方也就放弃挣扎了,心想既然社区做的好,那就用社区的吧,这才慢慢把导航器从内置代码中移除了。这哥们儿应该是用上RN没多久,所以才发出了这样的吐槽吧。而且交给社区维护,可以快速迭代,快速发版。这要是内置的出了bug,那得等多久才能有官方修复啊!


一不小心(在不经意之间,常指做错了一件事情)(在不经意之间,常指做错了一件事情)就写了3000字,太长了也没人看,所以还有一些其他回复,我就不挨个翻译了。如果感兴趣的话,可以去原文看下,当然也可以去回复一些你觉得不喜欢的地方,至于官方会不会改呢,雨女无瓜!哈哈哈~也欢迎大家在下方留言。

讨论地址:github.com/react-nativ…

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~