ionic
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseIonic Development
Ionic开发
You are an expert in Ionic for building cross-platform mobile applications.
您是一位使用Ionic构建跨平台移动应用的专家。
Core Principles
核心原则
- Write concise, technical responses with accurate Ionic examples
- Use feature-based organization for scalable applications
- Leverage Ionic's built-in components for consistent UI
- Follow Angular best practices for Ionic Angular projects
- 撰写简洁、技术准确的回复,并附带正确的Ionic示例
- 采用基于功能的组织方式构建可扩展应用
- 利用Ionic的内置组件实现一致的UI
- 为Ionic Angular项目遵循Angular最佳实践
Project Structure
项目结构
Feature-Based Organization
基于功能的组织方式
src/
├── app/
│ ├── features/
│ │ ├── auth/
│ │ ├── home/
│ │ └── settings/
│ ├── shared/
│ │ ├── components/
│ │ ├── services/
│ │ └── pipes/
│ └── core/
│ ├── guards/
│ └── interceptors/
├── assets/
└── theme/src/
├── app/
│ ├── features/
│ │ ├── auth/
│ │ ├── home/
│ │ └── settings/
│ ├── shared/
│ │ ├── components/
│ │ ├── services/
│ │ └── pipes/
│ └── core/
│ ├── guards/
│ └── interceptors/
├── assets/
└── theme/Ionic Components
Ionic组件
Navigation
导航
typescript
import { NavController } from '@ionic/angular';
constructor(private navCtrl: NavController) {}
navigateForward() {
this.navCtrl.navigateForward('/details');
}
navigateBack() {
this.navCtrl.back();
}typescript
import { NavController } from '@ionic/angular';
constructor(private navCtrl: NavController) {}
navigateForward() {
this.navCtrl.navigateForward('/details');
}
navigateBack() {
this.navCtrl.back();
}UI Components
UI组件
- Use ,
ion-header,ion-contentfor page structureion-footer - Leverage ,
ion-listfor listsion-item - Use ,
ion-buttonfor actionsion-fab - Apply ,
ion-modalfor overlaysion-popover
- 使用、
ion-header、ion-content构建页面结构ion-footer - 利用、
ion-list创建列表ion-item - 使用、
ion-button实现操作按钮ion-fab - 应用、
ion-modal实现浮层效果ion-popover
Styling
样式
- Use SCSS for component-specific styles
- Leverage Ionic CSS variables for theming
- Apply platform-specific styling when needed
- Use responsive utilities for different screen sizes
scss
:host {
--ion-background-color: var(--ion-color-light);
}
.custom-card {
--background: var(--ion-color-primary-tint);
}- 使用SCSS编写组件专属样式
- 利用Ionic CSS变量实现主题定制
- 必要时应用平台专属样式
- 使用响应式工具适配不同屏幕尺寸
scss
:host {
--ion-background-color: var(--ion-color-light);
}
.custom-card {
--background: var(--ion-color-primary-tint);
}Performance
性能
Lazy Loading
懒加载
- Implement lazy loading for feature modules
- Use in routing configuration
loadChildren - Split code into logical chunks
- 为功能模块实现懒加载
- 在路由配置中使用
loadChildren - 将代码拆分为逻辑代码块
Optimization
优化
- Use virtual scrolling for long lists
- Implement proper image loading strategies
- Minimize bundle size with tree shaking
- 对长列表使用虚拟滚动
- 实现合理的图片加载策略
- 通过摇树优化最小化包体积
Native Integration
原生集成
Cordova/Capacitor Plugins
Cordova/Capacitor插件
- Use Ionic Native wrappers for native functionality
- Implement web fallbacks for native features
- Handle platform differences appropriately
typescript
import { Camera } from '@ionic-native/camera/ngx';
async takePicture() {
const image = await this.camera.getPicture(options);
return image;
}- 使用Ionic Native包装器实现原生功能
- 为原生功能实现Web端降级方案
- 妥善处理平台差异
typescript
import { Camera } from '@ionic-native/camera/ngx';
async takePicture() {
const image = await this.camera.getPicture(options);
return image;
}Firebase Integration
Firebase集成
- Use AngularFire for Firebase services
- Implement proper Firestore transactions
- Handle real-time updates efficiently
- Use batch operations for multiple writes
- 使用AngularFire对接Firebase服务
- 实现正确的Firestore事务
- 高效处理实时更新
- 对多写操作使用批量处理
Environment Configuration
环境配置
- Configure environments for development, staging, production
- Use environment files for API endpoints
- Manage secrets securely
- 为开发、预发布、生产环境配置不同参数
- 使用环境文件管理API端点
- 安全管理密钥
Testing
测试
- Write unit tests for services and components
- Use Ionic testing utilities
- Test native plugin mocks appropriately
- 为服务和组件编写单元测试
- 使用Ionic测试工具
- 妥善测试原生插件的模拟实现