기본 사용법
|
|
-
BoxDB 인스턴스 생성하기
1 2 3 4 5 6 7
// src/database/index.ts import BoxDB from 'bxd'; export const DATABASE_NAME = 'database'; export const VERSION = 1; export const database = new BoxDB(DATABASE_NAME, VERSION);
-
Box 정의하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// src/models/user.ts import BoxDB, { BoxData } from 'bxd'; import { database } from '../database'; const schema = { _id: { type: BoxDB.Types.NUMBER, key: true, }, name: BoxDB.Types.STRING, address: BoxDB.Types.STRING, hobby: BoxDB.Types.ARRAY, created_at: BoxDB.Types.DATE, updated_at: BoxDB.Types.DATE, } as const; const User = database.create('user', schema); export type UserType = BoxData<typeof schema>; export default User;
-
Box 의 엔트리 소스 작성하기
1 2
// src/models/index.ts export { default as User } from './user';
-
Box 를 사용하기 전에 데이터베이스 열기
1 2 3 4
// src/index.ts import { database } from './database'; await database.open();
-
준비 끝!
1 2 3 4
import { User } from 'src/models'; await User.get(1); ...
React
-
기본 사용법에 이어서 진행
-
React Context와 Provider 생성하기
1 2 3 4 5 6 7 8
// context.ts import { createContext, ReactElement } from 'react'; import { database } from './index'; export const BoxContext = createContext(database); export const BoxProvider = ({ children }: { children: ReactElement }) => { return <BoxContext.Provider value={database}>{children}</BoxContext.Provider>; };
-
Provider 준비
1 2 3
<BoxProvider> ... </BoxProvider>
-
BoxDB 컨텍스트 사용하기
1 2 3 4
import { useContext } from 'react'; import { BoxContext } from 'path/to/context.ts'; const db = useContext(BoxContext);
예제
- Any Note: 심플 노트 웹 애플리케이션
- Hash Worker: 웹 워커를 통해 해시값을 찾고, 작업 기록을 IndexedDB 에 저장하는 샘플