# 页面 ## 页面简介 uni-app项目中,一个页面就是一个符合`Vue SFC规范`的 vue 文件。 - 在 uni-app js 引擎版中,后缀名是`.vue`文件或`.nvue`文件。 这些页面均全平台支持,差异在于当 uni-app 发行到App平台时,`.vue`文件会使用webview进行渲染,`.nvue`会使用原生进行渲染,详见:[nvue原生渲染](/tutorial/nvue-outline)。 一个页面可以同时存在vue和nvue,在[pages.json](../collocation/pages.md)的路由注册中不包含页面文件名后缀,同一个页面可以对应2个文件名。重名时优先级如下: - 在非app平台,先使用vue,忽略nvue - 在app平台,使用nvue,忽略vue - 在 uni-app x 中,后缀名是`.uvue`文件 uni-app x 中没有js引擎和webview,不支持和vue页面并存。 uni-app x 在app-android上,每个页面都是一个全屏activity,不支持透明。 ## 页面管理 ### 新建页面 `uni-app`中的页面,默认保存在工程根目录下的`pages`目录下。 每次新建页面,均需在`pages.json`中配置`pages`列表;未在`pages.json -> pages` 中注册的页面,`uni-app`会在编译阶段进行忽略。pages.json的完整配置参考:[页面配置](../collocation/pages.md)。 通过HBuilderX开发 `uni-app` 项目时,在 `uni-app` 项目上右键“新建页面”,HBuilderX会自动在`pages.json`中完成页面注册,开发更方便。 同时,HBuilderX 还内置了常用的页面模板(如图文列表、商品列表等),选择这些模板,可以大幅提升你的开发效率。
新建页面时,可以选择`是否创建同名目录`。创建目录的意义在于: - 如果你的页面较复杂,需要拆分多个附属的js、css、组件等文件,则使用目录归纳比较合适。 - 如果只有一个页面文件,大可不必多放一层目录。 ### 删除页面 删除页面时,需做两件工作: - 删除`.vue`文件、`.nvue`、`.uvue`文件 - 删除`pages.json -> pages`列表项中的配置 (如使用HBuilderX删除页面,会在状态栏提醒删除pages.json对应内容,点击后会打开pages.json并定位到相关配置项) ### 页面改名 操作和删除页面同理,依次修改文件和 `pages.json`。 ### pages.json pages.json是工程的页面管理配置文件,包括:页面路由注册、页面参数配置(原生标题栏、下拉刷新...)、首页tabbar等众多功能。 其篇幅较长,另见 [pages.json](../collocation/pages.md) ### 设置应用首页 `pages.json -> pages`配置项中的第一个页面,作为当前工程的首页(启动页)。 ```json { "pages": [ { "path": "pages/index/index", //名字叫不叫index无所谓,位置在第一个,就是首页 "style": { "navigationBarTitleText": "首页" //页面标题 } }, { "path": "pages/my", "style": { "navigationBarTitleText": "我的" } }, ] } ``` ## 页面内容构成 uni-app 页面基于 vue 规范。一个页面内,有3个根节点标签: - 模板组件区 `