uni-app基础知识介绍
创始人
2025-05-29 18:09:07
0

uni-app的基础知识介绍

1、在第一次将代码运行在微信开发者工具的时候,应该进行如下的配置:

(1)将微信开发者工具路径进行配置;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lbyk5Jw2-1679025184071)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\1679024954729.png)]

(2)在微信开发者工具中的设置里面==》安全设置==》服务端口打开;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3IhwQH3-1679025184073)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\1679024983105.png)]

2、全局配置:

(1)在pages.json里面有个gloablStyle进行配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EVYYEIwo-1679025184073)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210503194138648.png)]

(2)属性有:

属性类型默认值描述
navigationBarBackgroundColorHexColor#F7F7F7导航栏背景颜色(同状态栏背景色)
navigationBarTextStyleStringwhite导航栏标题颜色及状态栏前景颜色,仅支持black/white
navigationBarTitleTextString导航栏标题文字内容
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉Loading的样式,仅支持dark/light
enablePullDownRefreshBooleanfalse是否开启下拉刷新
onReachBottomDistanceNumber50页面上拉触底事件触发时距离页面底部距离,单位仅支持px

3、页面的创建

在pages中去创建页面,在这里我们需要注意的是:在创建了页面之后,必须将此页面在全局中的pages.json中pages项进行页面路径配置;

"pages": [ //pages数组中第一项表示应用启动页{"path" : "pages/message/message",//在这个里面我们可以针对当前页面的一些基础样式进行设置,当前页面的设置会覆盖掉全局的设置"style":{"navigationBarTitleText":"信息页面","navigationBarBackgroundColor":"#4CD964",//我们在这里给h5单独设置"h5":{"pullToRefresh":{"color":"#007AFF"}}} },{"path": "pages/index/index"}  
]

4、tabBar 页面配置

属性说明:

属性类型必填默认值描述平台差异说明
colorHexColortab上面文字默认颜色
selectedColorHexColortab上的文字选中时的颜色
backgroundColorStringtab的背景色
borderStyleStringblacktabBar上边框的颜色,仅支持black/whiteApp2.3.4+支持其他颜色值
listArraytab的列表,最少2个,最多5个tab
positionStringbttom可选值bottom、toptop仅微信小程序支持

在list数组里面所拥有的配置项:

pagePath:页面路径,必须在pages中先定义

text:tab上按钮文字

iconPath:图片路径,icon大小限制为40kb,建议尺寸为81*81px,当position为top时,此参数无效,不支持网络图片,不支持字体图标

selectedIconPath:选中时的图片路径,icon大小限制为40kb,建议尺寸为81*81px,当position为top时,此参数无效

5、condition启动模式配置

启动模式配置,仅支持开发期生效,用于模拟直达页面的场景,如:小程序转发后,用户点击所打开的页面

属性说明:

属性类型是否必填描述
currentNumber当前激活的模式,list节点的索引值
listArray启动模式列表

list说明:

属性类型是否必填描述
nameString启动模式名称
pathString启动页面路径
queryString启动参数,可在页面的onload函数里获得
pages.json
{"condition": {"current" : 0,"list": [{"name": '详情页面',"path":"pages/detail/detail","query":"id=80"}]}
}

6、组件的基本使用

(1)text文本组件的用法

属性类型默认值必填说明
selectablebooleanfalse文本是否可选
spacestring显示连续空格,可选线束:ensp/emsp/nbsp
decodebooleanfalse是否解码

text 组件相当于行内标签,在同一行显示

(2)view视图容器组件的用法(类型于div)

属性类型默认值必填说明
hover-classstringnone指定按下去的样式类,当hover-calss="none"时,没有点击态效果
hover-stop-propagationbooleanfalse指定是否阻止本节点的祖先节点出现点击态
hover-start-timenumber50按住后多久出现点击态,单位是毫秒
hover-stay-timenumber400手指松开后点击态保留时间,单位毫秒

(3)buttom按钮组件的用法

属性名类型默认值说明
sizestringdefault按钮大小
typestringdefault按钮的样式类型
plainBooleanfalse背景色透明
disabledBooleanfalse是否按钮
loadingBooleanfalse是否是带loading图标

(4)image组件的用法

7、uni-app中的样式

(1)rpx即响应式px,一种根据屏幕宽度自适应的动态单位,以750px宽的屏幕为基准,750rpx恰好为屏幕宽度,屏幕变宽,rpx实际显示效果会等比放大;

(2)使用@import语句可以引入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;分号表示语句结束;

(3)支持基本常用的选择器class/id/element等;

(4)在uini-app里面不能使用*选择器;

(5)page相当于body的节点;

(6)定义在App.vue中的样式为全局样式,作用于每一个页面,在pages目录下的vue文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖App.vue中相同的选择器;

(7)uni-app支持使用字体图标,使用方式与普通web项目相同,需要注意一下几点:

字体文件大小40kb,uni-app会自动将其转化为base64格式;

字体文字大小等于40kb,需开发者自己转化,否则试用期不生效;

字体文字的引入路径推荐使用以~@开头的绝对路径

@font-face{font-family:test-icon;src:url("~@/static/iconfont.ttf")
}

8、uni-app中的数据绑定

用法和vue中的相同;

9、uni-app中的事件绑定

用法同vue中的相同;

10、uni-app中的生命周期

属性名说明
onLaunch当uni-app初始化完成时触发(全局只触发一次)
onShow当uini-app启动,或者从后台进入前台显示
onHide当uini-app从前台进入后台
onError当uini-app报错时触发

页面的生命周期

函数名说明
onLoad监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参)
onPullDownRefresh监听用户下拉动作,一般用于下拉刷新
onReachBottom页面滚动到底部的事件,常用于下拉下一页数据
onShow监听页面显示,页面每次出现在屏幕上都触发
onReady监听页面初次渲染完成
onHide监听页面隐藏
onUnload监听页面卸载

11、下拉刷新

(1)在uni-app中有两种方式开启下拉刷新

第一种:需要在pages.json里,找到当前页面的pages节点,并且在style选项中开启enablePullDownRefresh

第二种:通过调用uni.startPullDownRefresh方式开启下拉刷新

(2)监听下拉刷新:

通过onPullDownRefresh可以监听到下拉刷新的动作

(3)关闭下拉刷新

uni.stopPullDownRefresh,停止当前页面下拉刷新

代码示例:

onPullDownRefresh() {console.log('下拉事件触发了');//当数据已经更新之后,不希望还是一种下拉刷新的状态,所以在这里我们需要将下拉刷新取消掉,在此我们需要调用停止下拉刷新的函数,因为我们的数据在一瞬间进行改变的,所以这个改变之后停止下拉刷新我们的效果并不是很明显,所以在这个时候我们可以添加一个定时器setTimeout(()=>{this.list = ['前端课程','Java','UI课程','大数据课程'];uni.stopPullDownRefresh();},2000)
}

12、网络请求

在uni中可以调用uni.request方法进行请求网络

需要注意的是:在小程序中网络相关的API在使用前需要配置域名白名单;

13、数据缓存

uni.setStorage

uni.setStorageSync

uni.getStorage

uni.getStorageSync

uni.removeStorage

uni.removeStorageSync

14、上传图片、预览图片

(1)上传图片

uni.chooseImage方法从本地相册选择图片或使用相机拍照

(2)预览图片

uni.previewImage(object)这个方法可以预览图片

15、条件注释实现跨段兼容

条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同的平台

写法:以#ifdef加平台标识开头,以#endif结尾;

平台标识

平台
APP-PLU55+APP
H5H5
MP-WEIXIN微信小程序
MP-ALIPAY支付宝小程序
MP-BAIDU百度小程序
MP-TOUTIAO头条小程序
MP-QQQQ小程序
MP微信小程序、支付宝小程序、百度小程序、头条小程序、QQ小程序

代码案例:


我只希望在H5页面中可以被看到



我只希望在微信小程序被看到

onLoad() {// #ifdef H5console.log('我希望在H5中打印')// #endif// #ifdef MP_WEINXINconsole.log('我希望在微信小程序中打印')// #endif
}/* #ifdef H5*/view {color: white;}/* #endif */

16、两种方式导航跳转和传参

声明式导航:

跳转至详情页面

跳转至首页
跳转至详情页面详情页面的接收:
onLoad(options){console.log(options)
}

编程式导航:



methods:{toDetail(){uni.navigateTo({url:"/pages/detail/detail?id=80&age=90"})},toIndex(){uni.switchTab({url:"/pages/index/index"})}}详情页面的接收:
onLoad(options){console.log(options)
}

17、组件的创建使用和组件的生命周期函数

uni里面的使用和vue一致

18、组件的通讯

uni里面的使用和vue一致

19、uni-ui组件库

相关内容

热门资讯

安卓系统换成苹果键盘,键盘切换... 你知道吗?最近我在想,要是把安卓系统的手机换成苹果的键盘,那会是怎样的体验呢?想象那是不是就像是在安...
小米操作系统跟安卓系统,深度解... 亲爱的读者们,你是否曾在手机上看到过“小米操作系统”和“安卓系统”这两个词,然后好奇它们之间有什么区...
miui算是安卓系统吗,深度定... 亲爱的读者,你是否曾在手机上看到过“MIUI”这个词,然后好奇地问自己:“这玩意儿是安卓系统吗?”今...
安卓系统开机启动应用,打造个性... 你有没有发现,每次打开安卓手机,那些应用就像小精灵一样,迫不及待地跳出来和你打招呼?没错,这就是安卓...
小米搭载安卓11系统,畅享智能... 你知道吗?最近小米的新机子可是火得一塌糊涂,而且听说它搭载了安卓11系统,这可真是让人眼前一亮呢!想...
安卓2.35系统软件,功能升级... 你知道吗?最近在安卓系统界,有个小家伙引起了不小的关注,它就是安卓2.35系统软件。这可不是什么新玩...
安卓系统设置来电拦截,轻松实现... 手机里总是突然响起那些不期而至的来电,有时候真是让人头疼不已。是不是你也想摆脱这种烦恼,让自己的手机...
专刷安卓手机系统,安卓手机系统... 你有没有想过,你的安卓手机系统是不是已经有点儿“老态龙钟”了呢?别急,别急,今天就来给你揭秘如何让你...
安卓系统照片储存位置,照片存储... 手机里的照片可是我们珍贵的回忆啊!但是,你知道吗?这些照片在安卓系统里藏得可深了呢!今天,就让我带你...
华为鸿蒙系统不如安卓,挑战安卓... 你有没有发现,最近手机圈里又掀起了一股热议?没错,就是华为鸿蒙系统和安卓系统的较量。很多人都在问,华...
安卓系统陌生电话群发,揭秘安卓... 你有没有遇到过这种情况?手机里突然冒出好多陌生的电话号码,而且还是一个接一个地打过来,简直让人摸不着...
ios 系统 安卓系统对比度,... 你有没有发现,手机的世界里,iOS系统和安卓系统就像是一对双胞胎,长得差不多,但细节上却各有各的特色...
安卓只恢复系统应用,重拾系统流... 你有没有遇到过这种情况?手机突然卡顿,或者某个应用突然罢工,你一气之下,直接开启了“恢复出厂设置”大...
安卓系统出现支付漏洞,揭秘潜在... 你知道吗?最近安卓系统可是闹出了不小的风波呢!没错,就是那个我们每天离不开的安卓系统,竟然出现了支付...
苹果换了安卓系统恢复,体验变革... 你有没有遇到过这种情况?手机里的苹果突然变成了安卓系统,而且还是那种让你摸不着头脑的恢复模式。别急,...
安卓怎么卸载系统app,轻松告... 手机里的系统应用越来越多,有时候真的让人眼花缭乱。有些应用虽然看起来很实用,但用起来却发现并不适合自...
安卓系统查看步数,揭秘日常运动... 你有没有发现,每天手机里的小秘密越来越多?今天,咱们就来聊聊安卓系统里那个悄悄记录你每一步的小家伙—...
安卓系统未来会不会,未知。 你有没有想过,那个陪伴我们手机生活的安卓系统,它的未来会怎样呢?想象每天早上醒来,手机屏幕上跳出的信...
安卓系统怎么设置截图,轻松捕捉... 亲爱的手机控们,你是不是也和我一样,有时候想记录下手机屏幕上的精彩瞬间呢?别急,今天就来手把手教你如...
安卓系统下载软件安装,安卓系统... 你有没有发现,手机里的安卓系统就像一个巨大的宝藏库,里面藏着各种各样的软件,让人眼花缭乱。今天,就让...