使用 Convex
编辑页面
使用 Convex 为你的应用添加数据库。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
Convex 是一个基于 TypeScript 的数据库,无需集群管理、SQL 或 ORM。Convex 通过 WebSocket 提供实时更新,非常适合响应式应用。
1
2
3
将 Convex URL 保存为 EAS 环境变量
运行 npx convex dev 会将你的部署 URL 保存到 .env.local 文件中,名称为 EXPO_PUBLIC_CONVEX_URL。为了让它在你的应用构建中可用,请在新的终端会话中将其添加为 EAS 环境变量:
Terminal
- eas env:create --name EXPO_PUBLIC_CONVEX_URL --value https://YOUR_DEPLOYMENT_URL.convex.cloud --visibility plaintext --environment production --environment preview --environment development将 https://YOUR_DEPLOYMENT_URL.convex.cloud 替换为你 .env.local 文件中的 EXPO_PUBLIC_CONVEX_URL 值。了解更多,请参阅 环境变量。
4
5
6
连接你的应用
在应用顶层的 src/app/_layout.tsx 文件中,创建一个 ConvexReactClient,并将其传递给包裹组件树的 ConvexProvider:
src/app/_layout.tsx
import { ConvexProvider, ConvexReactClient } from 'convex/react'; import { Stack } from 'expo-router'; const convex = new ConvexReactClient(process.env.EXPO_PUBLIC_CONVEX_URL!, { unsavedChangesWarning: false, }); export default function RootLayout() { return ( <ConvexProvider client={convex}> <Stack> <Stack.Screen name="index" /> </Stack> </ConvexProvider> ); }
7
在应用中显示数据
在你的应用中,使用 useQuery 钩子从 api.tasks.get API 获取数据:
src/app/index.tsx
import { api } from '@/convex/_generated/api'; import { useQuery } from 'convex/react'; import { Text, View } from 'react-native'; export default function Index() { const tasks = useQuery(api.tasks.get); return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center', }}> {tasks?.map(({ _id, text }) => ( <Text key={_id}>{text}</Text> ))} </View> ); }
下一步
了解如何使用 Convex
在构建聊天应用的同时了解 Convex 的工作原理。