# Billiard App - 台球馆自助小程序
一个基于 Taro 4.x + React + TypeScript + MobX + Taroify 的台球馆自助小程序。
## 技术栈
- ⚡️ **Taro 4.0.9** - 跨平台小程序开发框架
- ⚛️ **React 18** - UI 框架
- 📘 **TypeScript** - 类型安全
- 🔥 **MobX 6** - 状态管理
- 🎨 **Taroify 0.9.0** - UI 组件库
- 💅 **SCSS** - 样式预处理
- 📦 **Webpack 5** - 构建工具
## 项目特点
- ✅ TypeScript 全面支持
- ✅ MobX 响应式状态管理
- ✅ Taroify 组件库按需引入
- ✅ 5 个 TabBar 页面完整结构
- ✅ 自定义 TabBar 实现
- ✅ Webpack 5 构建
## 快速开始
### 1. 安装依赖
```bash
cd billiard-app
npm install
```
### 2. 开发
```bash
# 微信小程序
npm run dev:weapp
# H5
npm run dev:h5
```
### 3. 预览
- **微信小程序**:使用微信开发者工具打开 `dist/` 目录
- **H5**:浏览器访问开发服务器地址
### 4. 编译
```bash
# 微信小程序
npm run build:weapp
# H5
npm run build:h5
```
## 页面结构
项目包含 5 个 TabBar 页面:
| 页面 | 路径 | 说明 |
|------|------|------|
| 首页 | `/pages/index/index` | 主页面,扫码开台入口 |
| 门店 | `/pages/store/index` | 门店列表 |
| 扫码 | `/pages/scan/index` | 扫码功能(中间大按钮) |
| 消息 | `/pages/message/index` | 消息列表 |
| 我的 | `/pages/user/index` | 个人中心 |
## MobX 使用示例
```typescript
import { observer } from 'mobx-react'
import { userStore } from '../../store'
const MyPage = observer(() => {
const { userInfo, balance } = userStore
return (
{userInfo?.nickname}
余额: ¥{balance}
)
})
export default MyPage
```
## Taroify 组件使用
```typescript
import { Button, Toast, Dialog } from '@taroify/core'
import { HomeOutlined } from '@taroify/icons'
// 使用组件
```
## 开发规范
详见 [.cursorrules](./.cursorrules)
## 注意事项
1. **MobX 响应式**:组件必须用 `observer` 包裹
2. **样式单位**:使用 `px`,自动转换为 `rpx`
3. **TabBar 配置**:修改需同步更新配置文件
## License
MIT