likes
comments
collection
share

uni-app官网文档学习记录

作者站长头像
站长
· 阅读数 10

介绍

这边文章主要来自uni-app官网,记录一些常见问题和经常使用的组件及API,供后续使用快速浏览。如果想看更加全面的内容,建议移步到官网。uni-app

项目目录结构介绍

┌─uniCloud              云空间目录,支付宝小程序云为uniCloud-alipay,阿里云为uniCloud-aliyun,腾讯云为uniCloud-tcb(详见uniCloud)
│─components            符合vue组件规范的uni-app组件目录
│  └─comp-a.vue         可复用的a组件
├─utssdk                存放uts文件
├─pages                 业务页面文件存放的目录
│  ├─index
│  │  └─index.vue       index页面
│  └─list
│     └─list.vue        list页面
├─static                存放应用引用的本地静态资源(如图片、视频等)的目录,注意:静态资源都应存放于此目录
├─uni_modules           存放uni_module 详见
├─platforms             存放各平台专用页面的目录,详见
├─nativeplugins         App原生语言插件 详见
├─nativeResources       App端原生资源目录
│  ├─android            Android原生资源目录 详见
|  └─ios                iOS原生资源目录 详见
├─hybrid                App端存放本地html文件的目录,详见
├─wxcomponents          存放小程序组件的目录,详见
├─unpackage             非工程代码,一般存放运行或发行的编译结果
├─main.js               Vue初始化入口文件
├─App.vue               应用配置,用来配置App全局样式以及监听 应用生命周期
├─pages.json            配置页面路由、导航条、选项卡等页面类信息,详见
├─manifest.json         配置应用名称、appid、logo、版本等打包信息,详见
├─AndroidManifest.xml   Android原生应用清单文件 详见
├─Info.plist            iOS原生应用配置文件 详见
└─uni.scss              内置的常用样式变量

pages.json:页面路由

pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。 每次新建页面,均需在pages.json中配置pages列表;未在pages.json -> pages 中注册的页面,uni-app会在编译阶段进行忽略。

manifest.json 应用配置

manifest.json 文件是应用的配置文件,用于指定应用的名称、图标、权限等。HBuilderX 创建的工程此文件在根目录,CLI 创建的工程此文件在 src 目录。

App.vue/App.uvue

App.vue/uvue是uni-app的主组件。uni-app js引擎版是app.vue。uni-app x是app.uvue。

所有页面都是在App.vue下进行切换的,是应用入口文件。但App.vue本身不是页面,这里不能编写视图元素,也就是没有<template>

这个文件的作用包括:监听应用生命周期、配置全局样式、配置全局的存储globalData

应用生命周期仅可在App.vue中监听,在页面监听无效。 、

main.js/main.uts

main.js/uts是 uni-app 的入口文件。uni-app js引擎版是main.js,而uni-app x则是main.uts。以下一般用main.js泛指全部。

main.js主要作用是初始化vue实例、定义全局组件、使用需要的插件如 i18n、vuex。

uni.scss

uni.scss文件的用途是为了方便整体控制应用的风格。比如按钮颜色、边框风格,uni.scss文件里预置了一批scss变量预置。

package.json

管理依赖的包,调试脚本,

vue.config.js

vue.config.js 是一个可选的配置文件,如果项目的根目录中存在这个文件,那么它会被自动加载,一般用于配置 webpack 等编译选项,具体规范参考:vue.config.js

说明:仅vue页面生效

vite.config.js

vite.config.js 是一个可选的配置文件,如果项目的根目录中存在这个文件,那么它会被自动加载,一般用于配置 vite 的编译选项,具体规范参考:vite.config.js

说明:仅vue 3项目生效

开发效率

参考原文地址

Tag代码块

  • uButton
  • uCheckbox
  • uGrid:宫格,需引用uni ui
  • uList:列表,需引用uni ui
  • uListMedia
  • uRadio
  • uSwiper

JS代码块

uni api代码块

  • uRequest
  • uGetLocation
  • uShowToast
  • uShowLoading
  • uHideLoading
  • uShowModal
  • uShowActionSheet
  • uNavigateTo
  • uNavigateBack
  • uRedirectTo
  • uStartPullDownRefresh
  • uStopPullDownRefresh
  • uLogin
  • uShare
  • uPay

ue js代码块

  • vImport:导入文件
  • ed:export default
  • vData:输出 data(){return{}}
  • vMethod:输出 methods:{}
  • vComponents:输出 components: {}

其他常用js代码块

  • iff:简单if
  • forr:for循环结构体
  • fori:for循环结构体并包含i
  • funn:函数
  • funa:匿名函数
  • rt:return true
  • clog:输出:"console.log()"
  • clogvar:增强的日志输出,可同时把变量的名字打印出来
  • varcw:输出:"var currentWebview = this.scope.page.scope.page.scope.page.getAppWebview()"
  • ifios:iOS的平台判断
  • ifAndroid:Android的平台判断

uni-app组件

基础组件

视图容器(View Container):

组件名说明
view视图容器,类似于HTML中的div
scroll-view可滚动视图容器
swiper滑块视图容器,比如用于轮播banner
match-media屏幕动态适配组件,比如窄屏上不显示某些内容
movable-area可拖动区域
movable-view可移动的视图容器,在页面中可以拖拽滑动或双指缩放。movable-view必须在movable-area组件中
cover-view可覆盖在原生组件的上的文本组件
cover-image可覆盖在原生组件的上的图片组件

基础内容(Basic Content):

组件名说明
icon图标
text文字
rich-text富文本显示组件
progress进度条

表单组件(Form):

标签名说明
button按钮
checkbox多项选择器
editor富文本输入框
form表单
input输入框
label标签
picker弹出式列表选择器
picker-view窗体内嵌式列表选择器
radio单项选择器
slider滑动选择器
switch开关选择器
textarea多行文本输入框

路由与页面跳转(Navigation):

组件名说明
navigator页面链接。类似于HTML中的a标签

媒体组件(Media):

组件名说明
audio音频
camera相机
image图片
video视频
live-player直播播放
live-pusher实时音视频录制,也称直播推流

地图(Map):

组件名说明
map地图

画布(Canvas):

组件名说明
canvas画布

webview(Web-view):

组件名说明
web-viewweb浏览器组件

广告

组件名说明
ad广告组件
ad-draw沉浸视频流广告组件

页面属性配置

组件名说明
custom-tab-bar底部tabbar自定义组件
navigation-bar页面顶部导航
page-meta页面属性配置节点

uniCloud

组件名说明
unicloud-db组件uniCloud数据库访问和操作组件

uni-ui扩展组件

组件名组件说明
uni-badge数字角标
uni-calendar日历
uni-card卡片
uni-collapse折叠面板
uni-combox组合框
uni-countdown倒计时
uni-data-checkbox数据选择器
uni-data-picker数据驱动的picker选择器
uni-dateformat日期格式化
uni-datetime-picker日期选择器
uni-drawer抽屉
uni-easyinput增强输入框
uni-fab悬浮按钮
uni-fav收藏按钮
uni-file-picker文件选择上传
uni-forms表单
uni-goods-nav商品导航
uni-grid宫格
uni-group分组
uni-icons图标
uni-indexed-list索引列表
uni-link超链接
uni-list列表
uni-load-more加载更多
uni-nav-bar自定义导航栏
uni-notice-bar通告栏
uni-number-box数字输入框
uni-pagination分页器
uni-popup弹出层
uni-rate评分
uni-row布局-行
uni-search-bar搜索栏
uni-segmented-control分段器
uni-steps步骤条
uni-swipe-action滑动操作
uni-swiper-dot轮播图指示点
uni-table表格
uni-tag标签
uni-title章节标题
uni-transition过渡动画

uni-app api

列举了一些个人觉得会常用的,全部文档参考原文

基础

日志打印等。

API说明
日志打印向控制台打印日志信息
定时器在定时到期以后执行注册的回调函数
uni.base64ToArrayBuffer将 Base64 字符串转成 ArrayBuffer 对象
uni.arrayBufferToBase64将 ArrayBuffer 对象转成 Base64 字符串
应用级事件监听应用事件
拦截器拦截 Api 等调用并执行回调
全局 API可全局调用 Api

网络

发起请求

API说明
uni.request发起网络请求
上传、下载
API说明
uni.uploadFile上传文件
uni.downloadFile下载文件

媒体

图片

API说明
uni.chooseImage从相册选择图片,或者拍照
uni.previewImage预览图片
uni.closePreviewImage关闭预览图片
uni.getImageInfo获取图片信息
uni.saveImageToPhotosAlbum保存图片到系统相册

文件

API说明
uni.chooseFile从本地选择文件
录音管理
API说明
uni.getRecorderManager录音管理
背景音频播放管理
API说明
uni.getBackgroundAudioManager背景音频播放管理
音频组件管理
API说明
uni.createInnerAudioContext音频组件管理
视频
API说明
uni.chooseVideo从相册选择视频,或者拍摄
uni.chooseMedia拍摄或从手机相册中选择图片或视频。
uni.saveVideoToPhotosAlbum保存视频到系统相册
uni.createVideoContext视频组件管理
相机组件管理
API说明
uni.createCameraContext相机组件管理
直播组件管理
API说明
uni.createLivePlayerContext直播组件管理

文件

API说明
uni.saveFile保存文件
uni.getSavedFileList获取已保存的文件列表
uni.getSavedFileInfo获取已保存的文件信息
uni.removeSavedFile删除已保存的文件信息
uni.getFileInfo获取文件信息
uni.openDocument打开文件

数据缓存

API说明
uni.getStorage获取本地数据缓存
uni.getStorageSync获取本地数据缓存
uni.setStorage设置本地数据缓存
uni.setStorageSync设置本地数据缓存
uni.getStorageInfo获取本地缓存的相关信息
uni.getStorageInfoSync获取本地缓存的相关信息
uni.removeStorage删除本地缓存内容
uni.removeStorageSync删除本地缓存内容
uni.clearStorage清理本地数据缓存
uni.clearStorageSync清理本地数据缓存

位置

获取位置

API说明
uni.getLocation获取当前位置
uni.chooseLocation打开地图选择位置

查看位置

API说明
uni.openLocation打开内置地图

地图组件控制

API说明
uni.createMapContext地图组件控制

设备

系统信息

API说明
uni.getSystemInfo获取系统信息
uni.getSystemInfoSync获取系统信息
uni.canIUse判断应用的 API,回调,参数,组件等是否在当前版本可用

拨打电话

API说明
uni.makePhoneCall拨打电话

扫码

API说明
uni.scanCode扫码

剪切板

API说明
uni.setClipboardData设置剪贴板内容
uni.getClipboardData获取剪贴板内容

屏幕亮度

API说明
uni.setScreenBrightness设置屏幕亮度
uni.getScreenBrightness获取屏幕亮度
uni.setKeepScreenOn设置是否保持常亮状态

用户截屏事件

API说明
uni.onUserCaptureScreen监听用户截屏事件

手机联系人

API说明
uni.addPhoneContact添加手机通讯录

生物认证

API说明
uni.startSoterAuthentication开始生物认证
uni.checkIsSupportSoterAuthentication获取本机支持的生物认证方式
uni.checkIsSoterEnrolledInDevice获取设备内是否录入如指纹等生物信息的接口

界面

交互反馈

API说明
uni.showToast显示提示框
uni.showLoading显示加载提示框
uni.hideToast隐藏提示框
uni.hideLoading隐藏加载提示框
uni.showModal显示模态弹窗
uni.showActionSheet显示菜单列表

设置导航条

API说明
uni.setNavigationBarTitle设置当前页面标题
uni.setNavigationBarColor设置页面导航条颜色
uni.showNavigationBarLoading显示导航条加载动画
uni.hideNavigationBarLoading隐藏导航条加载动画

设置 TabBar

API说明
uni.setTabBarItem动态设置 tabBar 某一项的内容
uni.setTabBarStyle动态设置 tabBar 的整体样式
uni.hideTabBar隐藏 tabBar
uni.showTabBar显示 tabBar
uni.setTabBarBadge为 tabBar 某一项的右上角添加文本
uni.removeTabBarBadge移除 tabBar 某一项右上角的文本
uni.showTabBarRedDot显示 tabBar 某一项的右上角的红点
uni.hideTabBarRedDot隐藏 tabBar 某一项的右上角的红点

背景

API说明
uni.setBackgroundColor动态设置窗口的背景色。
uni.setBackgroundTextStyle动态设置下拉背景字体、loading 图的样式。

动画

API说明
uni.createAnimation创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的 export 方法导出动画数据传递给组件的 animation 属性。

滚动

API说明
uni.pageScrollTo将页面滚动到目标位置。

绘画

API说明
uni.createCanvasContext创建绘图上下文
uni.canvasToTempFilePath将画布内容保存成文件
uni.canvasGetImageData获取画布图像数据
uni.canvasPutImageData设置画布图像数据

下拉刷新

API说明
onPullDownRefresh监听该页面用户下拉刷新事件
uni.startPullDownRefresh开始下拉刷新
uni.stopPullDownRefresh停止当前页面下拉刷新

节点信息

API说明
uni.createSelectorQuery创建查询请求
selectorQuery.select根据选择器选择单个节点
selectorQuery.selectAll根据选择器选择全部节点
selectorQuery.selectViewport选择显示区域
selectorQuery.exec执行查询请求
nodesRef.boundingClientRect获取布局位置和尺寸
nodesRef.scrollOffset获取滚动位置
nodesRef.fields获取任意字段

节点布局相交状态

API说明
uni.createIntersectionObserver创建 IntersectionObserver 对象
intersectionObserver.relativeTo指定参照节点
intersectionObserver.relativeToViewport指定页面显示区域作为参照区域
intersectionObserver.observe指定目标节点并开始监听
intersectionObserver.disconnect停止监听

页面和路由

API说明
uni.navigateTo保留当前页面,跳转到应用内的某个页面,使用 uni.navigateBack 可以返回到原页面
uni.redirectTo关闭当前页面,跳转到应用内的某个页面
uni.reLaunch关闭所有页面,打开到应用内的某个页面
uni.switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
uni.navigateBack关闭当前页面,返回上一页面或多级页面

键盘

API说明
uni.hideKeyboard隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
uni.onKeyboardHeightChange监听键盘高度变化
uni.offKeyboardHeightChange取消监听键盘高度变化事件
uni.getSelectedTextRange在 input、textarea 等 focus 之后,获取输入框的光标位置

第三方服务

API说明
uni.getProvider获取服务供应商
uni.login登录
uni.getUserInfo获取用户信息
uni.getuserprofile获取用户信息。每次请求都会弹出授权窗口,用户同意后返回 userInfo
uni.checkSession检查登录状态是否过期
uni.preLogin预登录
uni.closeAuthView关闭一键登录页面
uni.getCheckBoxState获取一键登录条款勾选框状态
uni.getUniverifyManager获取全局唯一的一键登录管理器 univerifyManager
uni.share分享
uni.shareWithSystem使用系统分享
uni.requestPayment支付
uni.subscribePush开启推送
uni.unsubscribePush关闭推送
uni.onPush监听透传数据
uni.offPush移除监听透传数据

广告

API说明
激励视频广告激励视频广告,是 cpm 收益最高的广告形式
全屏视频广告全屏视频广告
内容联盟广告内容联盟广告
插屏广告插屏广告
互动游戏互动游戏是 DCloud 联合三方服务商为开发者提供新的广告场景增值服务

平台扩展

API说明
uni.requireNativePlugin引入 App 原生插件

其他

授权

API说明
uni.authorize提前向用户发起授权请求

设置

API说明
uni.openSetting调起客户端小程序设置界面,返回用户设置的操作结果。
uni.getSetting获取用户的当前设置。

收货地址

API说明
uni.chooseAddress获取用户收货地址

获取发票抬头

API说明
uni.chooseInvoiceTitle选择用户的发票抬头,需要用户授权 scope.invoiceTitle。

小程序跳转

API说明
uni.navigateToMiniProgram打开另一个小程序。
uni.navigateBackMiniProgram跳转回上一个小程序,只有当另一个小程序跳转到当前小程序时才会能调用成功。

模板消息

API说明
addTemplate组合模板并添加至帐号下的个人模板库。
deleteTemplate删除帐号下的某个模板。
getTemplateLibraryById获取模板库某个模板标题下关键词库。
getTemplateLibraryList获取 APP 模板库标题列表
getTemplateList获取帐号下已存在的模板列表。
sendTemplateMessage发送模板消息
alipay.open.app.mini.templatemessage.send支付宝小程序通过 openapi 给用户触达消息,主要为支付后的触达(通过消费 id)和用户提交表单后的触达(通过 formId)。

小程序更新

API说明
uni.getUpdateManager返回全局唯一的版本更新管理器对象: updateManager,用于管理小程序更新。

调试

API说明
uni.setEnableDebug设置是否打开调试开关。此开关对正式版也能生效。

获取第三方平台数据

API说明
uni.getExtConfig获取第三方平台自定义的数据字段。
uni.getExtConfigSyncuni.getExtConfig 的同步版本。

datacom组件规范

  1. 命名以 -data- 为中间分隔符,前面为组件库名称,后面是组件功能表达
  2. 组件可以通过属性赋值,绑定一个 data 数据。可以是本地的localdata,也可以直接指定uniCloud云数据库的查询结果。
  3. data数据是一组候选json数据。数据可以是平铺的数组,也可以是嵌套的树形结构。
  4. 符合 组件的表单校验规范

常见问题

关于elementUI与uni-ui开发小程序

传统的vue组件,比如elementUI,都是only for web的,里面有大量dom和window对象操作。但小程序和App是没有dom这些api的,自然无法跨端使用。

uni-app官网文档学习记录

跨域问题及mock