Skip to content

[新手必读]RN环境搭建/入门学习的一些注意事项 #77

Description

@sunnylqm

一切非官方博客、教程、讨论仅供参考,请始终以官方文档(请思考什么是官方?)为准


避免在用户名、目录名、文件名、变量名等处使用中文、空格等特殊字符

工具链中任意一处对特殊字符处理不好就会导致莫名其妙且难以察觉的错误。不要挖这样的坑。请不要使用和核心模块同名的目录名(如react,react-native等,父目录也不行)。也请不要单独使用编程语言中常见的关键字作为目录名(如class, native, new, package等等)


完整原生环境 VS 简易沙盒环境(CRNA / Expo)

推荐配置完整原生环境,虽然,比较麻烦😓
沙盒环境依赖于国外网络环境,不能直接发布应用,
也不能安装国内所常用的原生依赖库。不建议国内用户使用。


我只有Windows电脑,可以同时编写两个平台的代码吗?

可以。RN代码在逻辑层上是直接复用的,只是在不同平台上编译不同的原生“壳子”。注意事项:

  • 不要直接复制、移动项目,务必使用git管理和分发项目,不要上传node_modules目录。
  • 不要使用仅支持单平台的组件。

可以把代码移植到网页/小程序/……上吗?

官方并不直接支持其他平台。但github上可能有其他个人或组织提供了各种方案,
react-native-web, react-native-dom, reactXP, taro等等, 具体是否符合你的需求,需要你自己调研和评估。


推荐什么(免费)工具XX上网?

所有工具其实都是免费公开下载的,尽管其技术实现各有差异,但基本的原理都是依靠外面的服务器实现代理上网。然而服务器显然没有理由白白贡献给谁用,所谓的免费工具常常遭遇定时断开、限流、广告等也不难理解。要想获得稳定的网络,自己购买服务器,自己(学习)搭建代理是第一选择。请仅用于学习工作,不要用于非法用途。


为什么我使用了工具,网页也能打开,还是安装失败?

代理工具本身都需要对系统的网络配置进行介入和修改。这一过程有的可以自动配置,有的不能,有的甚至需要特定的工具或者协议转换。所以不代表所有工具都能自动让所有程序稳定访问代理(常见的例子是有的工具默认对浏览器做了配置,但命令行却没有生效)。相关知识和配置请自行研究学习。


关于版本选择

如果没有特殊需求,建立新项目始终选择默认的最新版本

  • RN仍然处于高速迭代中,并没有人建立全面的测试场景和标准,也没有人去做不同版本的评测,而官方基本只维护最新版本。

谨慎选择编译工具链版本

  • 所谓编译工具链是指JDK、Node、Xcode、Android Studio、Gradle、Python等编译RN时所依赖的底层工具,建议选择文档所要求的最低版本

谨慎对待这些工具的更新提示,谨慎使用macOS的自动更新和brew的upgrade命令。如果不是相关领域的专家,请勿主动尝试新版本,尤其是大版本更新。

如果你的所有版本都符合文档要求,仍然遭遇错误,请不要犹豫,去issue区提出问题。


请分辨可靠的信息来源

信息可靠度排序(同时请结合考虑版本、修改时间等因素):

  • Github官方仓库源码
  • 官方网站文档、官方博客
  • 官方网站文档翻译版
  • Github官方仓库issue版块的讨论

——————以下资料来源,如果没有官方出处,都不可靠

  • StackOverflow,专业论坛,博客, QQ群,贴吧,知道……

请使用Markdown语法

请任意找一篇教程熟悉md语法,例如 https://www.jianshu.com/p/191d1e21f7ed
提问时,请务必将你的代码用markdown语法扩起来,否则格式紊乱,难以阅读。
最基本的用法就是用三个撇号(数字1键左边)上下把代码包起来,像下面这样

f857e0c9-e558-42b5-a283-f7ac978d78f6-image


这样代码就会自动排版且带有语法高亮

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions