@Angular 2:更好的方法是否创建组件或模块

时间:2017-09-26 05:04:09

标签: angular angular2-components angular2-modules

@ angular2,@ angular2-components,@ angular2-modules

为不同的功能创建 app模块 的子模块或 不同组件 会有什么更好的方法从设计和业务角度使用static void Main(string[] args) { HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); try { var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = GetCredential(), ApplicationName = ApplicationName, }); String spreadsheetId = "1lZnvQe6lTGG81hyuQvf7HjH8YpnIadFlNHjFUq_G-5Q"; String range = "E1"; SpreadsheetsResource.ValuesResource.GetRequest getRequest = service.Spreadsheets.Values.Get(spreadsheetId, range); Data.ValueRange response = getRequest.Execute(); string recentMonth = DateTime.Now.ToString("MMM yyyy"); var recentMonthArrayValue = new List<string[]>(); recentMonthArrayValue.Add(new string[] { recentMonth }); if (response.Values[0][0].ToString() != recentMonth) { DateTime now = DateTime.Now; var currentMonthStartDate = new DateTime(now.Year, now.Month, 1).ToShortDateString(); Data.BatchUpdateSpreadsheetRequest batchUpdateSpreadsheetRequest = new Data.BatchUpdateSpreadsheetRequest(); batchUpdateSpreadsheetRequest.Requests = new List<Data.Request>(); Data.Request request = new Data.Request(); batchUpdateSpreadsheetRequest.Requests.Add(request); request.UpdateCells = new Data.UpdateCellsRequest(); var gridCoordinate = new Data.GridCoordinate(); gridCoordinate.ColumnIndex = 5; gridCoordinate.SheetId = 0; request.UpdateCells.Start = gridCoordinate; request.UpdateCells.Fields = "*"; request.UpdateCells.Rows = new List<Data.RowData>(); var rowData = new Data.RowData(); request.UpdateCells.Rows.Add(rowData); rowData.Values = new List<Data.CellData>(); var cellData = new Data.CellData(); cellData.UserEnteredValue = new Data.ExtendedValue(); cellData.UserEnteredValue.FormulaValue = "=TEXT(\"" + currentMonthStartDate + "\",\"MMM yyyy\")"; rowData.Values.Add(cellData); SpreadsheetsResource.BatchUpdateRequest batchUpdateRequest = service.Spreadsheets.BatchUpdate(batchUpdateSpreadsheetRequest, spreadsheetId); batchUpdateRequest.Execute(); } } catch (Exception e) { //throw; } } public static UserCredential GetCredential() { UserCredential credential; using (var stream =new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) { string credPath = System.Environment.GetFolderPath( System.Environment.SpecialFolder.Personal); credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json"); credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; return credential; } } 的项目?

2 个答案:

答案 0 :(得分:2)

ng模块只是包含组件,服务,管道,指令,提供者等的逻辑单元。

ng模块的主要好处是它们可以帮助您组织应用程序的逻辑结构 - 这种方式随着时间的推移更容易维护代码库等。

有不同类型的模块:

前段时间我giving a talk就此问题你可能会看一下code sample

另外,我建议您从最新的ngconf中观看此演讲https://www.youtube.com/watch?v=ntJ-P-Cvo7o,该演讲涵盖了ng模块的目的。

答案 1 :(得分:0)

取决于。如果您正在寻找构建自己的框架并在其他项目中使用它,最好创建一个功能模块(单独的模块)。例如,如果您有一个sidebar组件,并且想要在另一个应用程序中使用该组件,请将其保存在单独的模块中。

实际上,模块包含组件。因此,如果AddComponentSubComponentMultiplyComponent等都满足Math这样的单个业务单位,则应考虑创建MathModule

如果您正在寻找构建单个模块应用程序,请继续执行没有严格的规则。但考虑一下Angular模块的一个很好的功能。也可以按需加载模块。因此,如果您正在寻找懒惰加载某些组件,则必须将它们包装在模块中。没有其他办法。