uniapp中当数据库中表的数据发生改变后页面实时刷新的代码
时间: 2023-12-26 21:07:17 浏览: 302
uniAPP使用sqlite数据库demo
在uniapp中,可以使用小程序提供的实时数据更新机制来实现页面实时刷新。具体的实现步骤如下:
1. 在页面的onLoad函数中,调用小程序提供的wx.cloud.database()方法获取数据库实例,并调用实例的collection方法获取指定的集合。
2. 在页面的onShow函数中,调用集合的watch方法,监听集合中数据的变化,并在回调函数中实现数据的实时更新。
以下是示例代码:
```
<template>
<view>
<text v-for="(item, index) in list" :key="index">{{ item }}</text>
</view>
</template>
<script>
import db from '@/utils/db.js'
export default {
data() {
return {
list: []
}
},
onLoad() {
this.getList()
},
onShow() {
const collection = db.collection('test')
collection.watch({
onChange: (snapshot) => {
this.getList() // 数据发生变化时,重新获取数据并更新页面
},
onError: (err) => {
console.error('the watch closed because of error', err)
}
})
},
methods: {
async getList() {
const collection = db.collection('test')
const res = await collection.get()
this.list = res.data.map(item => item.name)
}
}
}
</script>
```
其中,db.js是一个封装了获取数据库实例的方法的工具文件。在使用时,需要替换成自己的数据库信息。
阅读全文