NgRx Actions 项目教程
1. 项目的目录结构及介绍
NgRx Actions 项目的目录结构如下:
ngrx-actions/
├── src/
│ ├── app/
│ │ ├── actions/
│ │ ├── effects/
│ │ ├── models/
│ │ ├── reducers/
│ │ ├── services/
│ │ ├── app.component.ts
│ │ ├── app.module.ts
│ ├── assets/
│ ├── environments/
│ ├── index.html
│ ├── main.ts
│ ├── styles.css
├── angular.json
├── package.json
├── tsconfig.json
目录结构介绍
- src/app/actions/: 存放应用的所有动作(actions)。
- src/app/effects/: 存放应用的所有副作用(effects)。
- src/app/models/: 存放应用的数据模型(models)。
- src/app/reducers/: 存放应用的所有状态 reducers。
- src/app/services/: 存放应用的服务(services)。
- src/app/app.component.ts: 应用的根组件。
- src/app/app.module.ts: 应用的根模块。
- src/assets/: 存放静态资源文件。
- src/environments/: 存放不同环境的配置文件。
- src/index.html: 应用的入口 HTML 文件。
- src/main.ts: 应用的入口 TypeScript 文件。
- src/styles.css: 全局样式文件。
- angular.json: Angular 项目的配置文件。
- package.json: 项目的依赖和脚本配置文件。
- tsconfig.json: TypeScript 编译配置文件。
2. 项目的启动文件介绍
main.ts
main.ts
是 Angular 应用的入口文件,负责启动应用。其主要内容如下:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
功能介绍
- enableProdMode(): 在生产环境中启用生产模式,禁用 Angular 的开发模式特性。
- platformBrowserDynamic(): 使用 JIT(Just-In-Time)编译器在浏览器中动态编译和启动应用。
- bootstrapModule(AppModule): 启动应用的根模块
AppModule
。
3. 项目的配置文件介绍
angular.json
angular.json
是 Angular 项目的配置文件,包含了项目的构建、开发服务器、测试等配置。主要内容如下:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"ngrx-actions": {
"projectType": "application",
"schematics": {},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/ngrx-actions",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}