uniapp
全局
navigationBarBackgroundColor:‘’ // 导航条背景颜色
navigationBarTextStyle :”“ // 导航条字体颜色
navigationBarTitleText:“” // 导航条标题
enablePullDownRefresh:true || false // 是否允许下拉
backgroundColor:”“ // 下拉的背景颜色
backgroundTextStyle:”“ //下拉的loading图标的颜色 仅支持dark light
单独页面中设置样式
h5设置页面
1 | "h5":{ |
tabBar
最少2个最多5个tab
1 | "tabBar":{ |
text组件
属性:
selectable 可以选中
space ensp中文字符一半大小 emsp中文字符大小 nbsp空格解析为 一个字符空格
decode 布尔值 解码例如<
解析为<
view组件
属性:
hover-class 鼠标按下时样式改变的class
hover-stop-propagation 阻止冒泡
hover-start-time 按下后?毫秒数后开始改变样式
hover-stay-time 按下结束后,保持多久毫秒
button组件
size 大小默认为default ,可选mini
type 按钮的样式类型 primary default 白色 warn 红色
plain 按钮是否镂空
disabled 按钮是否禁用
loading 是否带有加载图标 appnvue平台在ios为雪花,android为圆圈
image组件
image 默认宽高320*240
属性:
mode 设置图片
aspectFix按照长边保持纵横比缩放
aspectFill按照短边边保持纵横比缩放 会截图片
uniapp样式
rpx即响应式px,一种根据屏幕px自适应的动态单位,以750宽的屏幕为基准,750rpx正好为屏幕宽度,屏幕变宽,rpx实际显示效果变大
使用
@import
语句可以引入外联样式表,@import
后跟需要导入的外联样式表的相对路径,用;
表示结束@import url('a.css');
支持基本常用的选择器 class 、 id 、 element等
在uniapp中不能使用
*
选择器page
相当于body
节点定义在App.vue中的样式为全局样式,作用于每一个页面,在pages目录下的vue文件中定义的样式为局部样式,之作用在对应的页面,并且会覆盖App.vue中的样式
uniapp支持使用字体图标,使用方式与普通
web
项目相同,需要注意以下几点字体文件小于
40kb
uniapp会自动将其转换为base64格式字体文件大于
40kb
,需要开发者自己转换,否则使用将不生效字体文件的引用路径推荐使用以~@开头的绝对路径
1
2
3
4@font-face{
font-family:test1-icon;
src:url('~@/static/iconfont.ttf')
}
uni的生命周期
应用的生命周期
onLaunch 当uniapp初始化完成时触发
onShow 当uniapp启动,或从后台进入前台显示
onHide 当uniapp从前台进入后台
onError 当uniapp报错时触发
页面的生命周期
onLoad 监听页面加载,其参数为上个页面传递的参数,参数类型为Object(用于页面传参)
onShow 监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点击返回露出当前页面
onReady 监听页面初次渲染完成
onHide 监听页面隐藏
onUnload 监听页面卸载
onPullDownrefrech 监听用户下拉刷新
下拉刷新
开启下拉刷新
在uniapp中有两种下拉刷新开启的方式
- 在
pages.json
里,找到当前页面的pages节,并且在style
配置项中开启enablePullDownRefresh
为true - 通过调用
uni.startPullDownRefresh()
方法来下拉刷新
监听下拉刷线
通过onPullDownRefresh()
生命周期监听
1 | export default { |
关闭下拉刷新
uni.stopPullDownRefresh()
关闭下拉刷新
1 | <template> |
页面触底 上拉刷新
onReachBottom() 监听页面是否触底
onReachBottomDistance在pages.json中的pages配置项中,配置当前页面距离底部多少触发触底事件
网络请求
在uniapp中可以调用uni.request方法进行网络请求
需要注意的是:在小程序中网络相关的API在使用前需要配置域名白名单
发送get请求
1 | uni.request({ |
数据缓存
uni.setStorage
uni.setStorageSync
1 | uni.SetStorage({ |
uni.getStorage()
uni.getStorageSync()
1 | uni.getStorage({ |
uni.removeStorage()
uni.removeStorageSync()
1 | uni.removeStorage({ |
清除本地缓存数据
uni.clearStorage()
uni.clearStorageSync()
图片上传和预览
图片上传
uni.chooseImage()
1 | uni.chooseImage({ |
图片预览
uni.previewImage()
1 | uni.previewImage({ |
条件注释实现跨端兼容
条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同的平台
写法:以#ifdef
加平台标记开头,以#endif
结尾
平台标记:
值 | 生效条件 |
---|---|
VUE3 | HBuilderX 3.2.0+ 详情 (uni-app js引擎版) |
APP | App |
APP-PLUS | App(uni-app js引擎版) |
APP-PLUS-NVUE或APP-NVUE | App nvue 页面 |
APP-ANDROID | App Android 平台 仅限 uts文件 |
APP-IOS | App iOS 平台 仅限 uts文件 |
H5 | H5 |
MP-WEIXIN | 微信小程序 |
MP-ALIPAY | 支付宝小程序 |
MP-BAIDU | 百度小程序 |
MP-TOUTIAO | 抖音小程序 |
MP-LARK | 飞书小程序 |
MP-QQ | QQ小程序 |
MP-KUAISHOU | 快手小程序 |
MP-JD | 京东小程序 |
MP-360 | 360小程序 |
MP | 微信小程序/支付宝小程序/百度小程序/抖音小程序/飞书小程序/QQ小程序/360小程序 |
QUICKAPP-WEBVIEW | 快应用通用(包含联盟、华为) |
QUICKAPP-WEBVIEW-UNION | 快应用联盟 |
QUICKAPP-WEBVIEW-HUAWEI | 快应用华为 |
演示:dom
1 | <!-- #ifdef H5 --> |
演示:js
1 | onLoad() { |
演示:style
1 | view{ |
uni中的导航跳转
利用navigator进行跳转
跳转到普通页面
1 | <navigator url="/page/about/about"> |
跳转到tabBar页面
1 | <navigator url="/page/message/message" open-type="switchTab"> |
重定向跳转(无法返回)
1 | <navigator url="/page/about/about" open-type="redirect"> |
利用编程式导航跳转
利用navigateTo进行导航跳转
保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack()
可以返回原界面
1 | <button @click="goAbout">跳转到关于页面</button> |
通过navigateTo()跳转到普通页面
1 | getAbout(){ |
通过switchTab()跳转到tabBar页面
1 | <button @click="goMessage">跳转到message页面</button> |
1 | goMessage(){ |
导航跳转传递参数
在导航跳转到下一个页面的同时,可以给下一个页面传递相应的参数,接收参数的页面可以通过onLoad生命周期进行接收(onLoad(options){})
传递参数的页面
1 | goAbout(){ |
接收参数的页面
1 | <script> |
uniapp中组件的创建
在uniapp中,可以通过创建一个后缀名为.vue
的文件,即创建一个组件成功,其他组件可以将该组件import的方式导入,在通过componemts进行注册即可
-
- 标题: uniapp
- 作者: Voun
- 创建于 : 2023-08-19 11:30:00
- 更新于 : 2024-08-13 05:34:36
- 链接: http://www.voun.top/2023/08/19/13-uniapp/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。