uniapp 判断页面加载完
时间: 2023-12-23 15:05:38 浏览: 276
可以使用uni-app提供的onLoad生命周期函数来判断页面是否加载完成。该函数会在页面加载完成后自动执行,并携带一个对象类型的参数,里面包含了上一个页面跳转向当前页面时传递的参数。如果没有传递参数或者当前页面是首页面,则该参数为空。以下是一个示例代码:
```javascript
export default {
onLoad(options) {
console.log('页面加载完成')
console.log('传递的参数为:', options)
}
}
```
在该示例代码中,onLoad函数会在页面加载完成后自动执行,并输出一条日志信息和传递的参数。如果需要在页面加载完成后执行其他操作,可以在onLoad函数中添加相应的代码。
相关问题
uniapp 子组件加载父页面的接口数据
在Uniapp中,子组件可以通过props属性接收父页面传递过来的数据,然后在子组件中使用这些数据。
1. 在父页面中,先定义需要传递给子组件的数据,如下所示:
```
<template>
<div>
<child :list="list"></child>
</div>
</template>
<script>
export default {
data() {
return {
list: []
};
},
mounted() {
this.getList();
},
methods: {
getList() {
// 发送接口请求获取数据
// ...
// 将接口返回的数据赋值给list
this.list = [...];
}
}
};
</script>
```
2. 在子组件中,通过props接收父页面传递过来的数据,并在组件中使用这些数据,如下所示:
```
<template>
<div>
<ul>
<li v-for="(item, index) in list" :key="index">{{ item }}</li>
</ul>
</div>
</template>
<script>
export default {
props: {
list: {
type: Array,
default: () => []
}
}
};
</script>
```
在上述示例中,父页面通过props属性向子组件传递了list数据,子组件通过props接收了这个数据,并使用v-for指令遍历list数组,将数据渲染到页面中。
需要注意的是,如果父页面的数据是通过异步请求获取的,那么子组件可能会在父页面数据还未获取到时就开始渲染,此时子组件中的list数据会是空数组。为了避免这种情况,可以在子组件中使用v-if指令判断list数组是否有数据,只有在有数据时才渲染页面。
uniapp 触底分页加载
在Uni-app中实现触底分页加载可以通过监听页面滚动事件来实现。当页面滚动条触底时,可以触发onReachBottom()函数,在该函数中判断当前页是否大于等于总页数,如果是则表示已加载完所有数据,否则进行下一页数据的加载。
首先,在data中定义需要使用的数据,包括总页数、加载提示文本、是否加载完所有数据、请求参数和数据列表等。然后,在模板中添加提示消息的HTML代码,当数据加载完时,根据isLoadAll的值来显示相应的提示文本。
接着,在onReachBottom()函数中,判断当前页是否大于等于总页数,如果是,则设置isLoadAll为true,并显示提示文本为“没有更多数据啦~”,表示已加载完所有数据。如果不是,则将当前页数加1,并设置isLoadAll为false,并显示提示文本为“加载中...”,然后调用请求数据的函数querySalesCollectionDetails(),实现上拉加载更多数据的效果。
阅读全文