如果大家有看到抄袭的可以马上通知我,我一定会拿起法律武器,维护自身!之前没太在意,想着自己读者不算多,但是最近看到有公众号博主因此被起诉了的,所以觉得还是有必要注意一下。
导读昨天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:
- 将通过CLI生成的AppDelegate.m,AppDelegate.h还有main.m文件改为用Swift实现。像Flutter就提供了可以选择使用OC,Java或者Swift,Kotlin来初始化项目的功能。
- 鼓励更多的社区仓库使用Swift写iOS
Marno:
赞同,赞同,赞
快使用Swift,哼哼哈!
Swift,一时用一时爽,一直用一直爽!
原文:
现在的ReactNative没有内置一个合适的原生navigation库,应该搞一个可以使用native线程显示页面切换动画的导航器,而不是必须通过阻塞js线程。
Marno:
哈哈哈~天下苦navigation久已,不过现在已经好多了,基本被react-navigation一统天下了。刚开始的RN是内置了导航器的,而且搞了还搞了不止一个方案,但是效果都不怎么理想。与此同时社区出现了一些好用的导航器,尤其以react-nativetion为首
所以后来官方也就放弃挣扎了,心想既然社区做的好,那就用社区的吧,这才慢慢把导航器从内置代码中移除了。这哥们儿应该是用上RN没多久,所以才发出了这样的吐槽吧。而且交给社区维护,可以快速迭代,快速发版。这要是内置的出了bug,那得等多久才能有官方修复啊!
一不小心(在不经意之间,常指做错了一件事情)(在不经意之间,常指做错了一件事情)就写了3000字,太长了也没人看,所以还有一些其他回复,我就不挨个翻译了。如果感兴趣的话,可以去原文看下,当然也可以去回复一些你觉得不喜欢的地方,至于官方会不会改呢,雨女无瓜!哈哈哈~也欢迎大家在下方留言。
讨论地址:github.com/react-nativ…