React Native项目文件夹与文件命名规范及特殊命名缘由咨询
React Native 项目文件夹与文件命名惯例及最佳实践
一、带括号的文件夹(如(auth)、(tabs))
这类命名并非React Native本身的官方规则,而是Expo Router、Next.js App Router这类路由框架的专属约定:
- 核心作用是逻辑分组路由,不生成实际URL路径:比如
(auth)文件夹下的login.jsx、register.jsx,最终路由路径是/login、/register,而非/auth/login,既实现了认证相关页面的聚合管理,又不会额外增加路由层级。 - 场景适配:像
(tabs)这类分组,通常用来包裹底部标签页对应的页面,把标签页相关路由集中在一起,和其他业务路由(比如详情页、设置页)做隔离,让项目结构更清晰。
如果没有使用这类路由框架,开发者也可能用带括号的文件夹做纯逻辑分组,用来标记某一类功能的集合,和普通业务文件夹做视觉区分,本质是团队内部的约定。
二、下划线开头的文件(如_layout.jsx)
同样是路由框架的特殊约定,常见于Expo Router、Next.js:
_layout.jsx是布局文件:会自动作为当前目录下所有页面的父组件,用来定义共享导航(比如底部TabBar、顶部导航栏)、全局样式、权限校验逻辑等。比如(tabs)/_layout.jsx可以配置底部标签栏的样式和跳转规则,该文件夹下的home.jsx、profile.jsx都会自动套用这个布局。- 下划线的通用意义:如果脱离路由框架,下划线开头的文件通常用来标记私有/工具类文件,比如
_utils.js、_constants.js,表示这些文件是内部使用的模块,不对外暴露给其他业务模块,或者是全局共享的配置/工具,和普通业务页面、组件做区分。
三、通用命名最佳实践
除了框架专属约定,React Native项目还有一些通用的命名规则:
- 文件夹命名:优先用
kebab-case(短横线分隔),比如user-profile、product-list,清晰直观;按功能划分核心目录,比如screens(页面)、components(组件)、utils(工具)、hooks(自定义Hook)、assets(静态资源)。 - 文件命名:
- React组件用
PascalCase(大驼峰),比如UserProfile.jsx,符合React组件的命名规范; - 工具函数、配置文件用
camelCase(小驼峰)或kebab-case,比如formatDate.js、api-client.js; - 全局样式、私有模块可以用下划线开头,比如
_global-styles.js,明确其特殊用途。
- React组件用
- 兼容性:尽量避免使用空格、特殊符号(除框架约定的括号、下划线),保证在Windows、Mac等不同系统下都能正常识别。
内容的提问来源于stack exchange,提问作者Salty
相关产品推荐
相关产品推荐

