uni-app开发介绍

目录

前言

一、uni-app是什么?

二、uni-app的优势在哪里?

三、uni-app开发环境准备

1.配置微信开发者工具路径,及调试小程序

2.  配置adb路径及AVD端口号,以调试Android应用

3.pages.json 页面路由

配置项列表:

四、了解uni-app项目结构以及生命周期

1.uni-app项目结构(开发目录):

2.uni-app生命周期:

注意:

五、创建uni-app项目

1.在点击工具栏里的文件 -> 新建 -> 项目(快捷键Ctrl+N)

 2..uni-app给我们提供了很多模板,选择一个模板后创建

 六、运行uni-app项目

七、发布 uni-app

1.打包为原生APP

 2.发布为微信小程序

总结


前言

在学习uni-app前,建议开发者先学习Vue.js框架,因为uni-app基于Vue.js框架开发。若您已经熟悉Vue.js,则可以开始学习uni-app了。uni-app使用HTML、CSS和JavaScript编写应用程序,您可以通过使用Vue.js的语法以及Uni-app提供的组件和API来构建应用程序。

在学习uni-app时,建议同时了解应用开发的相关知识,如应用的生命周期、页面布局、事件绑定及其响应等。这些知识将帮助您更好地理解Uni-app的实现原理和应用开发流程。


一、uni-app是什么?

uni-app是一款全新的跨平台应用开发框架,它是一个使用 Vue.js 开发所有前端应用的框架,它支持一次开发,同时发布到多个平台。

二、uni-app的优势在哪里?

1.基于Vue.js框架:uni-app基于Vue.js框架,开发者可以在学习Vue.js的同时学习uni-app,熟悉Vue.js的开发者可以快速上手。

2.支持多个平台:开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序等多个平台,大大减少了开发者的开发成本,提高了开发效率。

3.组件丰富:uni-app内置了一些常用组件,如表单、列表、滑动、加载中等,这些常用组件可以满足开发者的各种开发需求。

4.通用技术栈:uni-app基于Vue.js框架,学习成本低,内嵌mpvue。

uni-app优势介绍

三、uni-app开发环境准备

开始之前,开发者需先下载安装如下工具 HBuilderX:官方IDE下载地址

1.配置微信开发者工具路径,及调试小程序

2.  配置adb路径及AVD端口号,以调试Android应用

3.pages.json 页面路由

pages.json文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。

它类似微信小程序中app.json页面管理部分。注意定位权限申请等原属于app.json的内容,在uni-app中是在manifest中配置。

配置项列表:

属性

类型必填描述平台兼容
globalStyleObject设置默认页面的窗口表现
pagesObject Array设置页面路径及窗口表现
easycomObject组件自动引入规则2.5.5+
tabBarObject设置底部 tab 的表现
conditionObject启动模式配置
subPackagesObject Array分包加载配置
preloadRuleObject分包预下载规则微信小程序
workersString worker代码放置的目录微信小程序
leftWindowObject大屏左侧窗口H5
topWindowObject大屏顶部窗口H5
rightWindowObject大屏右侧窗口H5
uniIdRouterObject自动跳转相关配置,新增于HBuilderX 3.5.0
entryPagePathString默认启动首页,新增于HBuilderX 3.7.0微信小程序、支付宝小程序

以下是一个包含了所有配置选pages.json

{
	"pages": [{
		"path": "pages/component/index",
		"style": {
			"navigationBarTitleText": "组件"
		}
	}, {
		"path": "pages/API/index",
		"style": {
			"navigationBarTitleText": "接口"
		}
	}, {
		"path": "pages/component/view/index",
		"style": {
			"navigationBarTitleText": "view"
		}
	}],
	"condition": { //模式配置,仅开发期间生效
		"current": 0, //当前激活的模式(list 的索引项)
		"list": [{
			"name": "test", //模式名称
			"path": "pages/component/view/index" //启动页面,必选
		}]
	},
	"globalStyle": {
		"navigationBarTextStyle": "black",
		"navigationBarTitleText": "演示",
		"navigationBarBackgroundColor": "#F8F8F8",
		"backgroundColor": "#F8F8F8",
		"usingComponents":{
			"collapse-tree-item":"/components/collapse-tree-item"
		},
		"renderingMode": "seperated", // 仅微信小程序,webrtc 无法正常时尝试强制关闭同层渲染
		"pageOrientation": "portrait", //横屏配置,全局屏幕旋转设置(仅 APP/微信/QQ小程序),支持 auto / portrait / landscape
		"rpxCalcMaxDeviceWidth": 960,
		"rpxCalcBaseDeviceWidth": 375,
		"rpxCalcIncludeWidth": 750
	},
	"tabBar": {
		"color": "#7A7E83",
		"selectedColor": "#3cc51f",
		"borderStyle": "black",
		"backgroundColor": "#ffffff",
		"height": "50px",
		"fontSize": "10px",
		"iconWidth": "24px",
		"spacing": "3px",
    	"iconfontSrc":"static/iconfont.ttf", // app tabbar 字体.ttf文件路径 app 3.4.4+
		"list": [{
			"pagePath": "pages/component/index",
			"iconPath": "static/image/icon_component.png",
			"selectedIconPath": "static/image/icon_component_HL.png",
			"text": "组件",
      		"iconfont": { // 优先级高于 iconPath,该属性依赖 tabbar 根节点的 iconfontSrc
       			"text": "\ue102",
        		"selectedText": "\ue103",
        		"fontSize": "17px",
        		"color": "#000000",
        		"selectedColor": "#0000ff"
      		}
		}, {
			"pagePath": "pages/API/index",
			"iconPath": "static/image/icon_API.png",
			"selectedIconPath": "static/image/icon_API_HL.png",
			"text": "接口"
		}],
		"midButton": {
			"width": "80px",
			"height": "50px",
			"text": "文字",
			"iconPath": "static/image/midButton_iconPath.png",
			"iconWidth": "24px",
			"backgroundImage": "static/image/midButton_backgroundImage.png"
		}
	},
  "easycom": {
    "autoscan": true, //是否自动扫描组件
    "custom": {//自定义扫描规则
      "^uni-(.*)": "@/components/uni-$1.vue"
    }
  },
  "topWindow": {
    "path": "responsive/top-window.vue",
    "style": {
      "height": "44px"
    }
  },
  "leftWindow": {
    "path": "responsive/left-window.vue",
    "style": {
      "width": "300px"
    }
  },
  "rightWindow": {
    "path": "responsive/right-window.vue",
    "style": {
      "width": "300px"
    },
    "matchMedia": {
      "minWidth": 768
    }
  }
}

四、了解uni-app项目结构以及生命周期

1.uni-app项目结构(开发目录):

├── App.vue  // 应用程序主组件
├── manifest.json // 配置应用程序的基本信息,如应用名称、图标、启动屏等
├── pages.json // 配置应用程序的页面路由、导航条等
├── main.js // 应用程序的入口文件
├── components // 存放所有可复用的组件
│   ├── common // 通用组件
│   ├── home // 首页组件
│   ├── list // 列表组件
│   └── ...
├── pages // 存放所有页面组件
│   ├── home // 首页
│   ├── list // 列表页
│   ├── detail // 详情页
│   └── ...
├── static // 存放静态文件,如图片、样式表等
│   ├── image
│   ├── css
│   └── ...
└── uni_modules // 存放npm包及uniapp插件
    ├── uni-ui // uni-ui组件库
    ├── ...

2.uni-app生命周期:

uni-app 支持如下应用生命周期函数:

函数名说明
onLaunchuni-app 初始化完成时触发(全局只触发一次)
onShow uni-app 启动,或从后台进入前台显示
onHide uni-app 从前台进入后台
onError uni-app 报错时触发
onUniNViewMessagenvue 页面发送的数据进行监听,可参考 nvue 向 vue 通讯
onUnhandledRejection对未处理的 Promise 拒绝事件监听函数(2.8.1+)
onPageNotFound页面不存在监听函数
onThemeChange监听系统主题变化

示例代码:

<script>
	// 只能在App.vue里监听应用的生命周期
	export default {
		onLaunch: function() {
			console.log('App Launch')
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>

注意:

  • 应用生命周期仅可在App.vue中监听,在其它页面监听无效。
  • 以组合式 API 使用时,在 Vue2 和 Vue3 中存在一定区别,请分别参考:Vue2 组合式 API 使用文档Vue3 组合式 API 使用文档
  • 应用启动参数,可以在API uni.getLaunchOptionsSync获取。
  • onlaunch里进行页面跳转,如遇白屏报错,请参考https://ask.dcloud.net.cn/article/35942
  • App.vue 不能写模板
  • onPageNotFound 页面实际上已经打开了(比如通过分享卡片、小程序码)且发现页面不存在,才会触发,api 跳转不存在的页面不会触发(如 uni.navigateTo)

五、创建uni-app项目

1.在点击工具栏里的文件 -> 新建 -> 项目(快捷键Ctrl+N

 2..uni-app给我们提供了很多模板,选择一个模板后创建

 六、运行uni-app项目

在微信开发者工具里运行:进入项目,点击工具栏的运行 -> 运行到小程序模拟器 -> 微信开发者工具,即可在微信开发者工具里面体验uni-app。

 注意:如果是第一次使用,需要先配置小程序ide的相关路径,才能运行成功。如下图,需在输入框输入微信开发者工具的安装路径。

 

七、发布 uni-app

1.打包为原生APP

在HBuilderX工具栏,点击发行,选择原生app-云端打包,如下图:

 随后按需求打包即可

 2.发布为微信小程序

申请微信小程序AppID,参考:微信教程

 在HBuilderX中顶部菜单依次点击 "发行" => "小程序-微信",输入小程序名称和appid点击发行即可

 如果手动发行,则点击发行按钮后,会在项目的目录 :unpackage/dist/build/mp-weixin生成微信小程序项目代码。在微信小程序开发者工具中,导入生成的微信小程序项目,测试项目代码运行正常后,点击“上传”按钮,之后按照 “提交审核” => “发布” 小程序标准流程,逐步操作即可。

如果在发行界面勾选了自动上传微信平台,则无需再打开微信工具手动操作,将直接上传到微信服务器提交审核。


总结

       uni-app具有强大的跨平台能力和开发效率,同时提供了丰富的组件和调试工具,以及外部扩展机制,使得开发者可以更加轻松地开发跨平台应用并提高开发效率。它支持一次开发,同时发布到多个平台:Android、iOS、H5、小程序和快应⽤等。uni-app基于Vue框架,提供了一系列的组件和API,让开发者可以快速地建立多端应用。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值