当前位置: 首页 > news >正文

uni-app基础知识介绍

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小程序

代码案例:

<!-- #ifdef H5 -->
<view >我只希望在H5页面中可以被看到
</view>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view >我只希望在微信小程序被看到
</view>
<!-- #endif -->onLoad() {// #ifdef H5console.log('我希望在H5中打印')// #endif// #ifdef MP_WEINXINconsole.log('我希望在微信小程序中打印')// #endif
}<styel>/* #ifdef H5*/view {color: white;}/* #endif */</style>

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

声明式导航:

<navigator url="/pages/detail/detail?id=80">跳转至详情页面</navigator>
<!-- 当我们要跳转到tabbar页面的时候,需要添加open-type -->
<navigator url="/pages/index/index" open-type="switchTab">跳转至首页</navigator>
<navigator url="/pages/index/index" open-type="redirect">跳转至详情页面</navigator>详情页面的接收:
onLoad(options){console.log(options)
}

编程式导航:

<button type="default" @click="toDetail">跳转到详情页面</button>
<button type="default" @click="toIndex">跳转到首页</button>
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组件库

http://www.lryc.cn/news/41858.html

相关文章:

  • Word2010(详细布局解释)
  • Spring如何实现Quartz的自动配置
  • 计算机组成原理——作业四
  • 2023前端面试题(经典面试题)
  • 【Linux内网穿透】使用SFTP工具快速实现内网穿透
  • SQL语句性能分析
  • 【K3s】第28篇 详解 k3s-killall.sh 脚本
  • 生成时序异常样本-学习记录-未完待续
  • 自定义类型的超详细讲解ᵎᵎ了解结构体和位段这一篇文章就够了ᵎ
  • 【五】springboot启动源码 - onRefresh
  • 带你一文透彻学习【PyTorch深度学习实践】分篇——线性回归(训练周期:前馈、反馈、权重更新)
  • 【前端八股文】浏览器系列:性能优化——HTML、CSS、JS、渲染优化
  • Linux分文件编程:静态库与动态库的生成和使用
  • 技术人的管理学-业务管理
  • Dubbo的独门绝技,SPI实现原理分析
  • 单例模式,饿汉与懒汉
  • Prometheus监控实战之Blackbox_exporter黑盒监测
  • 【蓝桥杯集训·每日一题】AcWing 1051. 最大的和
  • 【Unity工具,简单应用】Photon + PUN 2,做一个简单多人在线聊天室
  • 程序员增加收入实战 让小伙伴们都加个鸡腿
  • GPIO四种输入和四种输出模式
  • ChatGPT能够改变时代吗?一点点思考
  • Markdown如何使用详细教程
  • HTML5庆祝生日蛋糕烟花特效
  • 算法套路四——反转链表
  • 多线程 (六) wait和notify
  • React--》状态管理工具—Mobx的讲解与使用
  • 有效的括号长按键入验证外星语词典字符的最短距离用栈实现队列
  • 《前端开发者的进阶之路》
  • 为什么说网络安全是风口行业?是IT行业最后的红利?