优点: a. 一套代码可以生成多端 b. 学习成本低,语法是vue的,组件是小程序的 c. 拓展能力强 d. 使用HBuilderX开发,支持vue语法 e. 突破了系统对H5调用原生能力的限制 缺点: a. 问世时间短,很多地方不完善 b. 社区不大 c. 官方对问题的反馈不及时 d. 在Android平台上比微信小程序和iOS差 e. 文件命名受限
vue和uni-app动态绑定一个变量的值为元素的某个属性的时候,会在属性前面加上冒号":"; 小程序绑定某个变量的值为元素属性时,会用两个大括号{{}}括起来,如果不加括号,为被认为是字符串。
vue: 存储:localstorage.setItem(‘key’,‘value’) 接收:localstorage.getItem(‘key’`) 微信小程序: 存储:通过wx.setStorage/wx.setStorageSync写数据到缓存 接收:通过wx.getStorage/wx.getStorageSync读取本地缓存, uni-app: 存储:uni.setStorage({key:“属性名”,data:“值”}) //异步 uni.setStorageSync(KEY,DATA) //同步 接收:uni.getStorage({key:“属性名”,success(res){res.data}}) //异步 uni.getStorageSync(KEY) //同步 移除:uni.removeStorage(OBJECT) //从本地缓存中异步移除指定 key。 uni.removeStorageSync(KEY) //从本地缓存中同步移除指定 key。 清除:uni.clearStorage() //清理本地数据缓存。 uni.clearStorageSync() //同步清理本地数据缓存。
getApp() 函数 用于获取当前应用实例,一般用于获取globalData是简单的全局变量
getApp():获取全局对象,然后进行全局变量和全局方法的使用
getCurrentPages() 函数 用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
uni.$emit(eventName,OBJECT)触发全局的自定义事件,附加参数都会传给监听器回调函数。
uni.$on(eventName,callback)监听全局的自定义事件,事件由 uni.$emit
触发,回调函数会接收事件触发函数的传入参数。
uni.$off([eventName, callback]):移除全局自定义事件监听器。
1. onLoad:首次进入页面加载时触发,可以在 onLoad 的参数中获取打开当前页面路径中的参数。 2. onShow:加载完成后、后台切到前台或重新进入页面时触发 3. onReady:页面首次渲染完成时触发 4. onHide:从前台切到后台或进入其他页面触发 5. onUnload:页面卸载时触发 6. onPullDownRefresh:监听用户下拉动作 坡挡 瑞fei去 7. onReachBottom:页面上拉触底事件的处理函数 瑞去 波得 8. onShareAppMessage:用户点击右上角转发 靴apu meiseiG
vue一样
他们的主要区别呢就是:
uni.navigateTo( ):保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
uni.redirectTo( ):关闭当前页面跳转到应用内的某个页面。但是不能跳转 tabbar 页面 瑞得莱克T
uni.switchTab( ):跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 它波
uni.navigateBack( )关闭当前页面,返回上一页面或多级页面。可通过
getCurrentPages() 获取当前的页面栈,决定需要返回几层 卡瑞T
uni.reLaunch( ):关闭所有页面,打开到应用内的某个页面 瑞luang去
uni.uploadFile({ uplow得fai奥 url: '要上传的地址', fileType:'image', filePath:'图片路径', name:'文件对应的key', success: function(res){ console.log(res) }, })
rpx 相当于把屏幕宽度分为750份,1份就是1rpx px 绝对单位,页面按精确像素展示 em 相对单位,相对于它的父节点字体进行计算 rem 相对单位,相对根节点html的字体大小来计算 % 一般来说就是相对于父元素 vh 视窗高度,1vh等于视窗高度的1% vw 视窗宽度,1vw等于视窗宽度的1%
模板字符串 字符串拼接 通过跳转路径后面拼接参数来进行跳转传参
onLoad: function (option) { console.log(option) }
封装请求 以结果推导我们的方法
export function request(url,data={},method='GET'){ return new Promise((resolve,reject)=>{ 发送请求 wx.request({ url:'https//.com'+url, method, data, success(res){ resolve(res.data) } fail(err){ console.log(err) } }) }) } import {request} from '' requset('/list'给了默认不用写).then(res=>{ console.log(res) })
问题:
scroll-view 是常会用到的一个标签,我们可以使用 position:sticky 加一个边界条件例如top:0 属性实现一个粘性布局,在容器滚动的时候,如果我们的顶部标签栏触碰到了顶部就不会再滚动了,而是固定在顶部。但是在小程序中如果你在scroll-view元素中直接为子元素使用sticky属性,你给予sticky的元素在到达父元素的底部时会失效。
解决:
在scroll-view元素中,再增加一层view元素,然后在再将使用了sticky属性的子元素放入view中,就可以实现粘贴在某个位置的效果了