uni-app学习
uni中的事件
事件绑定
在uni中事件绑定和vue一样,通过v-on进行绑定,可以简写为@
<button type="primary" v-on:click="handClick">点我</button>
- 1
可以简写为:
<button type="primary" @click="handClick">点我</button>
- 1
在methods中:
methods:{
handClick(){
('点到我啦')
}
}
- 1
- 2
- 3
- 4
- 5
内联处理器的方法
除了直接绑定到一个方法,也可以在内联js语句中调用方法:
<div id="exam">
<button v-on:click="say('hi')">Say hi</button>
<button v-on:click="say('what')">Say what</button>
</div>
- 1
- 2
- 3
- 4
new Vue({
el: '#exam',
methods: {
say: function (message) {
alert(message)
}
}
})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
事件修饰符
<!-- 阻止单击事件继续传播 -->
<a v-on:="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:="doThat"></a>
<!-- 只有修饰符 -->
<form v-on:></form>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
uni的生命周期函数
应用的生命周期
生命周期的概念:一个对象从创建、运行、销毁的整个过程被成为生命周期。
生命周期函数:在生命周期中每个阶段会伴随着每一个函数的触发,这些函数被称为生命周期函数
函数名 | 说明 |
---|---|
onLaunch | 当uni-app初始化完成时触发 |
onShow | 当uni-app启动,或从后台进入前台显示 |
onHide | 当uni-app从前台进入后台 |
onError | 当uni-app报错时触发 |
export default{
onLaunch:function(){
('Launch')
},
onShow:function(){
('Show')
},
onHide:function(){
('Hide')
},
onError:function(err){
('出现异常',err)
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
页面的生命周期
函数名 | 说明 |
---|---|
onLoad | 监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参) |
onShow | 监听页面显示 |
onReady | 监听页面初次渲染完成 |
onHide | 监听页面隐藏 |
onUnload | 监听页面卸载 |
onResize | 监听窗口尺寸变化 |
onPullDownRefresh | 监听用户下拉动作,一般用于下拉刷新 |
onTabItemTap | 点击 tab 时触发,参数为Object |
onReachBottom | 页面上拉触底事件的处理函数 |
onShareAppMessage | 用户点击右上角分享 |
onNavigationBarSearchInputChanged | 监听原生标题栏搜索输入框输入内容变化事件 |
onNavigationBarSearchInputConfirmed | 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发 |
onNavigationBarSearchInputClicked | 监听原生标题栏搜索输入框点击事件 |
export default{
onLoad(){
('页面加载了')
},
onShow(){
('页面显示了')
},
onReady(){
('页面初次渲染完成')
},
onHide(){
('页面隐藏了')
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
注意:
onLoad和onReady不会多次触发,onShow和onHide会多次触发
下拉刷新
onPullDownRefresh
在js中定义,监听该页面用户下拉刷新
- 在里,找到当前页面的pages节点,并在style选项中开启 enablePullDownRefresh。
- 当处理完数据刷新后, 可以停止当前页面的下拉刷新。
<view v-for="item in list">
{{item}}
</view>
- 1
- 2
- 3
exort default{
data(){
return{
list:['前端','Java','美工']
}
},
<!-- 页面刷新两秒之后停止刷新 -->
onPullDownRefresh(){
console.log('出发了下拉刷新')
setTimeout(()=>{
this.list=['美工','前端','Java']
uni.stopPullDownRefresh()
},2000)
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
点击下拉刷新
<view v-for="item in list">
{{item}}
</view>
<button @click="pullDown">点击下拉刷新</button>
- 1
- 2
- 3
- 4
exort default{
data(){
return{
list:['前端','Java','美工']
}
},
<!-- 页面刷新两秒之后停止刷新 -->
onPullDownRefresh(){
console.log('出发了下拉刷新')
setTimeout(()=>{
this.list=['美工','前端','Java']
uni.stopPullDownRefresh()
},2000)
},
methdos:{
pullDown(){
uni.startPullDownRefresh()
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
上拉加载
<view v-for="item in list">
{{item}}
</view>
- 1
- 2
- 3
exort default{
data(){
return{
list:['前端','Java','美工']
}
},
<!-- 页面刷新两秒之后停止刷新 -->
onPullDownRefresh(){
console.log('出发了下拉刷新')
setTimeout(()=>{
this.list=['美工','前端','Java']
uni.stopPullDownRefresh()
},2000)
},
onReachBottom(){
this.list =[...this.list,['美工','前端','Java']]
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18