首页 > 其他分享 >Uniapp基础学习(二)

Uniapp基础学习(二)

时间:2024-09-08 15:53:06浏览次数:3  
标签:Uniapp 配置 基础 学习 json uni path pages 页面

uni-app怎么用?和vue对比记忆一文教会你_uniapp vue-CSDN博客

一、项目结构解读

uni-app项目的结构通常包括以下几个部分:

  • pages:存放项目页面的目录,每个页面通常由.vue文件、.js文件、.json文件等组成。
  • components:存放可复用的Vue组件的目录。
  • static:存放静态资源(如图片、视频等)的目录。
  • utils:存放工具函数的目录。
  • store:Vuex状态管理
  • main.js:Vue初始化入口js文件。
  • App.vue:入口组件,用于配置App全局样式以及监听应用生命周期。
  • manifest.json:配置文件,用于配置应用名称、appid、logo、版本、启动页面等打包信息。
  • pages.json:页面管理文件,用于配置页面路由、导航条、选项卡、页面样式等页面类信息。

主要mainfest.json和pages.json两个文件与Vue项目有不少差异,下面重点阐述这两文件:

mainfest.json

manifest.json 文件是 uni-app 项目中用于管理应用配置的重要文件,它包含了应用的名称、图标、权限、版本信息、页面路由配置、窗口样式配置、平台特有配置等多个方面的内容。以下是对 manifest.json 文件的详细解析:

基本结构

manifest.json 是一个 JSON 格式的文件,其基本结构大致如下:

{  
  "appid": "__UNI__XXXXXX", // 创建应用时云端分配的,不要修改  
  "name": "应用名称",  
  "description": "应用描述",  
  "versionName": "1.0.0",  
  "versionCode": "100",  
  // 其他配置项...  
}
-----------------------------------------------------------------
{
    "name" : "若依移动端",
    "appid" : "__UNI__25A9D80",
    "description" : "",
    "versionName" : "1.1.0",
    "versionCode" : "100",
    "transformPx" : false,
    "app-plus" : {
        "usingComponents" : true,
        "nvueCompiler" : "uni-app",
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "autoclose" : true,
            "delay" : 0
        },
        "modules" : {},
        "distribute" : {
            "android" : {
                "permissions" : [
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                ]
            },
            "ios" : {},
            "sdkConfigs" : {}
        }
    },
    "quickapp" : {},
    "mp-weixin" : {
        "appid" : "wxccd7e2a0911b3397",
        "setting" : {
            "urlCheck" : false,
            "es6" : false,
            "minified" : true,
            "postcss" : true
        },
        "optimization" : {
            "subPackages" : true
        },
        "usingComponents" : true
    },
    "vueVersion" : "2",
    "h5" : {
        "template" : "static/index.html",
        "devServer" : {
            "port" : 9090,
            "https" : false
        },
        "title" : "RuoYi-App",
        "router" : {
            "mode" : "hash",
            "base" : "./"
        }
    }
}

主要配置项

1. 应用基本信息
  • appid:创建应用时云端分配的唯一标识符,不要修改。
  • name:应用名称,将展示在应用的标题栏或安装列表中。
  • description:应用描述,简短介绍应用的功能和用途。
  • versionName:版本名称,通常用于展示给用户看的版本描述。
  • versionCode:版本号,用于内部标识应用的版本,通常是一个整数,每次发布新版本时递增。
2. 窗口表现
  • navigationBarTextStylenavigationBarTitleTextnavigationBarBackgroundColor 等:这些配置项用于设置导航栏的样式,包括文字颜色、标题、背景色等。不过需要注意的是,这些配置项通常不在 manifest.json 中直接设置,而是在 pages.json 或其他全局配置文件中设置。
3. 应用权限

对于需要特定权限的应用(如访问相机、存储等),manifest.json 文件中可以配置相应的权限申请信息。这部分信息通常位于平台特有的配置部分,如 app-plusdistribute 等。

4. 平台特有配置
  • app-plus:5+App(即使用 HBuilderX 打包的原生App)的特有配置,包括是否允许内联视频播放、是否启用自定义组件模式、编译器版本、nvue页面编译模式等。
  • distribute:发布信息配置,包括Android和iOS的打包配置,如Android的权限申请、iOS的某些特殊配置等。
  • quickapp:快应用特有配置。
  • mp-weixinmp-alipaymp-baidu 等:各小程序平台的特有配置,如小程序的 appid、是否启用自定义组件模式等。
5. 统计与监控
  • uniStatistics:uni统计配置,用于控制是否开启uni统计功能,以收集应用的使用情况数据。
6. 其他配置
  • splashscreen:启动界面配置,包括是否等待首页渲染完毕后再关闭启动界面、是否自动关闭启动界面、是否在程序启动界面显示等待雪花等。
  • modules:模块配置,用于控制app的包体积,不需要的模块可以在打包时剔除。
  • vueVersion:Vue版本选择,uni-app支持Vue 2.x和Vue 3.x,可以在这里指定使用哪个版本的Vue。

注意事项

  • 在配置 manifest.json 时,应确保遵循 JSON 的语法规则,如使用双引号表示字符串、对象属性名与值之间用冒号分隔等。
  • 不同的平台(如小程序、H5、App)在解析 manifest.json 时可能会有所差异,因此在配置时需要注意跨平台的兼容性。
  • 对于一些敏感信息(如小程序的 appid),应避免在公共的代码仓库中泄露。

总之,manifest.json 文件是 uni-app 项目中非常重要的配置文件,通过合理配置该文件,可以方便地管理应用的基本信息、窗口表现、平台特有配置等多个方面的内容。

page.json

pages.json 文件是 uni-app 项目中用于全局配置的重要文件,它决定了页面文件的路径、窗口样式、原生的导航栏、底部的原生 tabbar 等。该文件类似微信小程序中的 app.json 的页面管理部分,但提供了更多跨平台的配置选项。以下是对 pages.json 文件的详细解析:

基本结构

pages.json 是一个 JSON 格式的文件,其基本结构大致如下:

{  
  "pages": [  
    {  
      "path": "pages/index/index",  
      "style": {  
        // 页面样式配置  
      }  
    },  
    // 更多页面配置...  
  ],  
  "globalStyle": {  
    // 全局样式配置  
  },  
  "tabBar": {  
    // tabBar 配置  
  },  
  "condition": {  
    // 启动模式配置  
  },  
  "easycom": {  
    // 组件自动引入规则  
  },  
  // 其他配置项...  
}

------------------------------------------------------------
{
  "pages": [{
    "path": "pages/login",
    "style": {
      "navigationBarTitleText": "登录"
    }
  }, {
    "path": "pages/register",
    "style": {
      "navigationBarTitleText": "注册"
    }
  }, {
    "path": "pages/index",
    "style": {
      "navigationBarTitleText": "若依移动端框架",
      "navigationStyle": "custom"
    }
  }, {
    "path": "pages/work/index",
    "style": {
      "navigationBarTitleText": "工作台"
    }
  }, {
    "path": "pages/mine/index",
    "style": {
      "navigationBarTitleText": "我的"
    }
  }, {
    "path": "pages/mine/avatar/index",
    "style": {
      "navigationBarTitleText": "修改头像"
    }
  }, {
    "path": "pages/mine/info/index",
    "style": {
      "navigationBarTitleText": "个人信息"
    }
  }, {
    "path": "pages/mine/info/edit",
    "style": {
      "navigationBarTitleText": "编辑资料"
    }
  }, {
    "path": "pages/mine/pwd/index",
    "style": {
      "navigationBarTitleText": "修改密码"
    }
  }, {
    "path": "pages/mine/setting/index",
    "style": {
      "navigationBarTitleText": "应用设置"
    }
  }, {
    "path": "pages/mine/help/index",
    "style": {
      "navigationBarTitleText": "常见问题"
    }
  }, {
    "path": "pages/mine/about/index",
    "style": {
      "navigationBarTitleText": "关于我们"
    }
  }, {
    "path": "pages/common/webview/index",
    "style": {
      "navigationBarTitleText": "浏览网页"
    }
  }, {
    "path": "pages/common/textview/index",
    "style": {
      "navigationBarTitleText": "浏览文本"
    }
  }],
  "tabBar": {
    "color": "#000000",
    "selectedColor": "#000000",
    "borderStyle": "white",
    "backgroundColor": "#ffffff",
    "list": [{
        "pagePath": "pages/index",
        "iconPath": "static/images/tabbar/home.png",
        "selectedIconPath": "static/images/tabbar/home_.png",
        "text": "首页"
      }, {
        "pagePath": "pages/work/index",
        "iconPath": "static/images/tabbar/work.png",
        "selectedIconPath": "static/images/tabbar/work_.png",
        "text": "工作台"
      }, {
        "pagePath": "pages/mine/index",
        "iconPath": "static/images/tabbar/mine.png",
        "selectedIconPath": "static/images/tabbar/mine_.png",
        "text": "我的"
      }
    ]
  },
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "RuoYi",
    "navigationBarBackgroundColor": "#FFFFFF"
  }
}

主要配置项

1. pages
  • 作用:用于配置应用包含的页面路径及窗口表现。
  • 格式:一个数组,每个元素都是一个对象,包含 path 和 style 两个属性。
  • path:页面路径,必须以 / 开头,表示项目的根目录。
  • style:页面样式配置,包括导航条样式、背景色等。
2. globalStyle
  • 作用:用于设置默认页面的窗口表现,如导航栏样式、背景色等。
  • 主要属性
  • navigationBarTextStyle:导航栏标题颜色及状态栏前景颜色,仅支持 black/white
  • navigationBarTitleText:导航栏标题文字内容。
  • navigationBarBackgroundColor:导航栏背景颜色(同状态栏背景色)。
  • backgroundColor:窗口的背景色。
  • backgroundTextStyle:下拉 loading 的样式,仅支持 dark/light
  • rpxCalcMaxDeviceWidthrpxCalcBaseDeviceWidthrpxCalcIncludeWidth:与 rpx 计算相关的配置。
3. tabBar
  • 作用:用于配置底部的原生 tabbar。
  • 主要属性
  • color:未选中时 tab 上的文字默认颜色。
  • selectedColor:选中时 tab 上的文字颜色。
  • backgroundColor:tab 的背景色。
  • borderStyle:tabbar 上边框的颜色,可选值 black/white
  • list:tab 的列表,每个元素都是一个对象,包含 pagePathtexticonPathselectedIconPath 等属性。
4. condition
  • 作用:启动模式配置,仅开发期间生效,用于模拟直达页面的场景。
  • 主要属性
  • current:当前激活的模式(list 的索引项)。
  • list:模式的列表,每个元素包含 namepath 和可选的 query 属性。
5. easycom
  • 作用:组件自动引入规则,可以简化组件的引用方式。
  • 主要属性
  • autoscan:是否开启自动扫描,开启后将会自动扫描符合特定目录结构的组件。
  • custom:自定义扫描规则,以正则方式定义组件的匹配规则。

注意事项

  • pages.json 文件中的配置项非常灵活,可以根据项目的具体需求进行配置。
  • 不同的平台(如小程序、H5、App)在解析 pages.json 时可能会有所差异,因此在配置时需要注意跨平台的兼容性。
  • 在配置 pages.json 时,应确保遵循 JSON 的语法规则,如使用双引号表示字符串、对象属性名与值之间用冒号分隔等。

总之,pages.json 文件是 uni-app 项目中非常重要的配置文件,通过合理配置该文件,可以方便地管理项目的页面、样式和导航等。

page.json VS VueRouter 

上述page.json功能类似于Vue-Router路由管理,下面简单阐述其不同:

Vue Router与uni-app中的pages.json在路由管理上存在明显的区别,主要体现在它们的设计目标、配置方式、应用场景以及路由跳转的实现方式上。以下是对这两者的详细对比:

一、设计目标与应用场景

  1. Vue Router
  • 设计目标:Vue Router是Vue.js的官方路由管理器,它与Vue.js深度集成,主要用于构建单页面应用(SPA)。
  • 应用场景:主要面向Web应用,特别是需要页面间导航而不需要重新加载页面的Web应用。
  1. uni-app的pages.json
  • 设计目标:uni-app是一个使用Vue.js开发所有前端应用的框架,其目标是编写一套代码,发布到iOS、Android、H5、以及各种小程序等多个平台。pages.json是uni-app中用于配置页面路由的全局配置文件。
  • 应用场景:适用于需要跨平台开发的场景,包括Web、iOS、Android以及各种小程序等。

二、配置方式

  1. Vue Router
  • 路由配置通常在项目的router.js或main.js文件中进行,通过定义路由表(routes)来管理页面间的导航。
  • 每个路由对象包含路径(path)、组件(component)以及可能的子路由(children)等属性。
import Vue from 'vue'  
import Router from 'vue-router'  
import Home from './views/Home.vue'  

Vue.use(Router)  

export default new Router({  
  routes: [  
    {  
      path: '/',  
      name: 'home',  
      component: Home  
    },  
    // 其他路由...  
  ]  
})

uni-app的pages.json

  • 路由配置在全局的pages.json文件中进行,该文件定义了应用的所有页面及其导航条、窗口表现等属性。
  • 每个页面配置项包含路径(path)、窗口表现(style)等属性。
{  
  "pages": [  
    {  
      "path": "pages/index/index",  
      "style": {  
        "navigationBarTitleText": "首页"  
      }  
    },  
    // 其他页面...  
  ]  
}

三、路由跳转的实现方式

  1. Vue Router
  • 路由跳转通常通过编程式导航(如this.$router.push({ path: '/some-path' }))或声明式导航(在模板中使用<router-link to="/some-path">)来实现。
  1. uni-app
  • 路由跳转在uni-app中通过API(如uni.navigateTo({ url: '/pages/some/path' }))或<navigator url="/pages/some/path">组件来实现。
  • uni-app还支持更丰富的页面跳转类型,如重定向(uni.redirectTo)、重新加载(uni.reLaunch)等。


标签:Uniapp,配置,基础,学习,json,uni,path,pages,页面
From: https://blog.51cto.com/u_15157190/11952194

相关文章

  • 基于大语言模型智能体的自主机器学习
    文章介绍了MLR-Copilot框架,这是一种利用大型语言模型(LLMs)来自动化机器学习研究中创意生成、实验设计和实施过程的方法。该框架分为三个阶段:首先通过阅读现有研究文献,使用LLM驱动的IdeaAgent来生成研究假设和实验计划;其次,ExperimentAgent将这些计划转换为可执行的代码,并检索原型代码......
  • 第一个机器学习Git项目
    Fork项目访问项目主页:Simple-CNN-CIFAR10点击右上角的“Fork”按钮,将该项目复制到自己的GitHub账户中。克隆项目到WSL2创建项目文件夹,并且选择项目克隆,在WSL2终端输入mkdir-p~/projectscd~/projects``gitclonehttps://github.com/Air-LWZ/pytorch-cifar.git`进入克......
  • 数据结构基础讲解(三)——线性表之循环链表专项练习
    本文数据结构讲解参考书目:通过网盘分享的文件:数据结构 C语言版.pdf链接: https://pan.baidu.com/s/159y_QTbXqpMhNCNP_Fls9g?pwd=ze8e 提取码:ze8e数据结构基础讲解(二)——线性表之单链表专项练习-CSDN博客 个人主页:樱娆π-CSDN博客目录循环链表双向链表......
  • 基于django+vue中华汉字学习平台【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息爆炸的时代,汉字作为中华文化的瑰宝,其学习与传承面临着前所未有的挑战与机遇。随着全球化的深入发展,汉语国际教育日益受到重视,但传统......
  • MySQL基础(8)- 单行函数(1)
    目录一、函数的理解二、数值函数1.基本函数2.取随机数3.四舍五入截断操作 4.单行函数嵌套5.角度与弧度 6.三角函数7.指数和对数8. 进制间的转换 三、字符串函数 四、日期和时间1.获取日期、时间2.日期与时间戳3.获取月份、星期、星期数、天数等函数 4.......
  • Day01 MarkDown语法学习
    MarkDown语法学习标题#+空格一级标题##+空格二级标题字体粗体**粗体**斜体*斜体*斜体加粗***斜体加粗***删除线~~删除~~引用引用>引用分割线---或者***图片![截图2](https://cdn.luogu.com.cn/upload/usericon/1.png)超链接我的博客[我的博客](htt......
  • Linux运维学习记录04
    一、通过网络配置命令,让主机可以上网。ip,netmask,gateway,dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。1.先修改网卡名2.然后配置静态IP地址,子网掩码和网关vim/etc/sysconfig/network-scripts/ifcfg-eth13.进行查看4.新增DNSvim/etc/resolv.co......
  • SpringBoot学习(9)(springboot自动配置原理)(源码分析、面试题)
    目录一、引言二、为啥学习自动配置原理?三、自动配置(1)基本概述(2)学习回顾四、自动配置——源码分析(1)回顾学习(2)回到源码学习(1)注解@ComponentScan(2)注解@SpringBootConfiguration(3)核心注解@EnableAutoConfiguration(4)对刚刚源码的一个大致总结(梳理)五、解决问题六、分......
  • 协议基础——UART
    目录背景知识协议串行-并行单工-半双工-全双工同步-异步UART协议UART引脚介绍及连接UART帧结构UART波特率UART传输方式UART通信前的约定UART通信举例背景知识协议在了解UART协议之前,我们首先要清楚什么是协议。那什么是协议呢?协议简单来说是标准,是规定,是”......
  • 第二周周日9.8学习总结
    vj2https://vjudge.net/contest/651666#overviewhttps://www.cnblogs.com/Hamine/p/16661610.htmlC-ExpressMailTaking#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;typedeflonglongll;constintmaxn=200......