# cloudbase-vue-next
**Repository Path**: isfive/cloudbase-vue-next
## Basic Information
- **Project Name**: cloudbase-vue-next
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-04-19
- **Last Updated**: 2025-04-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: cloudbase
## README
# 云开发 Vue3插件
[云开发 Vue 插件](https://github.com/TencentCloudBase/cloudbase-vue) 是云开发官方维护的 Vue 插件,提供全局入口、Vue 逻辑组件等功能。
## 安装
```
npm install --save cloudbase-vue-next
```
------
## 使用
下面我们使用 `LoginState` 组件,来动态绑定当前页面的登录态。
- 页面初始化时,显示 `'未登录'`
- 之后我们调用[匿名登录](https://docs.cloudbase.net/authentication/
anonymous.html),如果登录成功,则文案将变成 `'已登录'`
main.js
```js
import {createApp} from "vue"
import Cloudbase from "cloudbase-vue-next"
import App from "./App.vue"
const app = createApp(App)
app.use(Cloudbase, {
env: "your-env-id",
region: "your-env-region"
})
app.mount('#app');
```
App.vue
```html
Hello world
{{ loginState ? "已登录" : "未登录" }}
```
在setup中使用
```html
Hello world
{{ loginState ? "已登录" : "未登录" }}
```
--------
## Plugin API
### Vue.$cloudbase
可以在 Vue 组件的 `this.$cloudbase` 中,获取 Cloudbase 实例
```js
export default {
data() {
return {
docs: []
}
},
async created() {
// 登录
await this.$cloudbase.auth({ persistence: "local" }).signInWithTicket(ticket)
// 数据库查询
const queryResult = await this.$cloudbase.database().collection('test').where({}).get()
this.docs = queryResult.data
}
}
```
--------
## Components
| 组件 | 功能 |
| ---- | ---- |
| [LoginState](#loginstate) | 获取并绑定登录状态 |
| [DatabaseQuery](#databasequery) | 数据库查询 |
| [DatabaseWatch](#databasewatch) | 数据库实时推送 |
| [CloudFile](#cloudfile) | 获取云存储中的文件 |
### LoginState
获取登录状态
#### Props
暂无
#### Slots
| slot | type | 描述 |
| ---------- | ---------------------- | ------------ |
| loginState | `null` or `LoginState` | 当前是否登录 |
| loading | `boolean` | 是否加载中 |
#### Example
```html
{{ loading ? '加载中' : (loginState ? '已登录' : '没登录') }}
```
-------
### DatabaseQuery
数据库查询
#### Props
| prop | type | 描述 |
| ---------- | ---------- | ------------------------------------------------ |
| collection | `string` | 集合名 |
| query | `function` | 返回自定的查询条件,如 `_ => ({ foo: _.gt(2) })` |
#### Slot
| slot | type | 描述 |
| ------- | ----------------- | -------------- |
| docs | `Array` | 文档组成的数组 |
| loading | `boolean` | 是否加载中 |
| error | `null` or `Error` | 错误 |
#### Example
```html
{{ text }}
```
-------
### DatabaseWatch
数据库实时监听
#### Props
| prop | type | 描述 |
| ---------- | ---------- | ------------------------------------------------ |
| collection | `string` | 集合名 |
| query | `function` | 返回自定的查询条件,如 `_ => ({ foo: _.gt(2) })` |
#### Slot
| slot | type | 描述 |
| ------- | ----------------- | -------------- |
| docs | `Array` | 文档组成的数组 |
| loading | `boolean` | 是否加载中 |
| error | `null` or `Error` | 错误 |
#### Example
```html
{{ text }}
```
------
### CloudFile
根据 `FileID`,获取云存储文件的真实 URL
#### Props
| slot | type | 描述 |
| ---- | -------- | ----------------------------- |
| id | `string` | 云存储 ID,形如 `cloud://...` |
#### Slot
| slot | type | 描述 |
| ------- | ----------------- | -------------- |
| url | `string` | 文件的真实 URL |
| loading | `boolean` | 是否加载中 |
| error | `null` or `Error` | 错误 |
#### Example
```html
{{ url ? url : 'loading...' }}
```