Angular 组件介绍及使用(一)

Angular 概述

Angular 是一个用于构建 Web 应用程序的开源前端框架,由 Google 团队开发和维护。它采用 TypeScript 编程语言,并借鉴了一些传统的 Web 开发模式和最佳实践,提供了强大而灵活的工具和特性。

以下是 Angular 的一些概述要点:

  1. 组件化架构:Angular 以组件为核心,通过组件构建可重用、模块化的用户界面。每个组件由模板、样式和组件类组成,并且具有独立的功能和数据。

  2. 声明式模板:Angular 的模板语法基于 HTML,并且支持插值绑定、指令、管道等特性。这使得开发者可以以声明式方式定义和操作应用程序的视图。

  3. 双向数据绑定:Angular 的双向数据绑定机制可以实时更新模型和视图之间的数据变化。当模型发生变化时,视图会自动更新;反之亦然。

  4. 依赖注入:Angular 内置了强大的依赖注入机制,它可以帮助开发者解耦和管理组件之间的依赖关系。通过注入器(Injector),开发者可以轻松地创建和使用服务、组件和其他依赖项。

  5. 强大的工具集:Angular 提供了一整套工具和特性,用于帮助开发者提高生产效率和开发质量。其中包括自动化的测试工具、静态类型检查、命令行工具(Angular CLI)等。

  6. 跨平台开发:Angular 不仅可以用于构建 Web 应用程序,还可以用于构建移动应用程序和桌面应用程序。通过框架如 Ionic 和 Electron,开发者可以使用 Angular 来构建跨平台的应用程序。

  7. 社区支持和生态系统:Angular 拥有庞大的开发者社区和丰富的生态系统。开发者可以通过官方文档、教程、博客和论坛等资源获取支持,并分享自己的经验和知识。

Angular 与 VUE的区别

Angular 和 Vue 都是现代的前端框架,用于开发 Web 应用程序。

Angular 是由 Google 开发和维护的框架,采用 TypeScript 语言编写。它拥有完整的开发体系,能够提供强大的功能和高度可扩展性,适用于大型企业级应用和复杂的单页应用程序。Angular 的学习曲线相对较陡,需要掌握一定的 TypeScript 知识和 Angular 的核心概念。

Vue 是一个由尤雨溪开发和维护的轻量级框架,采用 JavaScript 编写。它拥有创新的响应式数据绑定和易于使用的 API,能够快速构建小型到中型的 Web 应用程序。Vue 具有比较平缓的学习曲线,不需要过多的配置和学习成本。

Angular 组件是 Angular 框架中的核心概念之一,用于构建用户界面。每个 Angular 组件由模板、样式和逻辑组成,它们一起工作以创建可重用的、模块化的用户界面。

Angular 搭建项目

  1. 创建 Angular 项目:
    首先,你需要安装 Angular CLI(命令行界面),它是一个用于创建和管理 Angular 项目的工具集。打开终端(命令行界面),运行以下命令安装 Angular CLI:

    npm install -g @angular/cli
    

    创建一个新的 Angular 项目:

    ng new my-app
    

    注意,my-app 是你项目的名称,可以根据你实际的需求进行修改。

  2. 进入项目目录:
    在终端中,通过以下命令进入刚刚创建的项目目录:

    cd my-app
    
  3. 安装依赖:
    在项目目录下,运行以下命令安装项目所需要的依赖:

    npm install
    

    此命令将自动从 package.json 文件中读取项目依赖,并进行安装。

  4. 导入 @angular/core 模块:
    在你的 TypeScript 文件中,使用 import 关键字导入 @angular/core 模块。例如:

    import { Component } from '@angular/core';
    

    这样就可以在文件中使用 @angular/core 模块中的组件、指令等功能了。

  5. 创建 Angular 组件:
    在你的项目中创建一个组件,可以使用 Angular CLI 提供的快捷命令 ng generate component,它会自动生成组件所需的文件。例如,运行以下命令生成一个名为 my-component 的组件:

    ng generate component my-component
    

    这会自动生成 my-component 组件所需的组件类、HTML 模板、CSS 样式等文件,并自动在适当的位置将组件注册到相关模块中。

    如果你手动创建组件,请确保在组件类上添加合适的装饰器,并将组件类导出。例如:

    import { Component } from '@angular/core';@Component({selector: 'app-my-component',templateUrl: './my-component.component.html',styleUrls: ['./my-component.component.css']
    })export class MyComponentComponent {// 组件逻辑
    }
    
  6. 在模块中引入组件:
    在相关模块中(通常是根模块或其他特定功能模块),将组件导入,并将其添加到 declarations 数组中。例如,在根模块中(app.module.ts):

    import { NgModule } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';import { AppComponent } from './app.component';
    import { MyComponentComponent } from './my-component/my-component.component'; // 导入组件@NgModule({declarations: [AppComponent,MyComponentComponent // 将组件添加到 declarations 数组],imports: [BrowserModule],providers: [],bootstrap: [AppComponent]
    })
    export class AppModule { }
    

    通过将组件添加到 declarations 数组,Angular 知道它在应用程序中注册了这个组件,并可以在相关模板中使用它。

  7. 启动应用程序:
    使用以下命令启动 Angular 项目:

    ng serve
    

    它会启动开发服务器,并在浏览器中运行你的应用程序。通过访问 http://localhost:4200,你将能够看到你的应用程序在浏览器中运行。

Angular组件介绍

组件类 (Component Class)

用于定义组件的行为和属性。它通常使用装饰器 @Component 来进行装饰,并包含与组件相关的逻辑和数据。

import { Component } from '@angular/core';@Component({selector: 'app-example',template: `<h1>Hello Angular!</h1><p>{{ message }}</p>`,styleUrls: ['./example.component.css']
})
export class ExampleComponent {message = 'Welcome to Angular!';
}


模板 (Template)

定义了组件的 HTML 结构和布局,用于描述如何渲染组件的视图。使用 Angular 的模板语法进行插值绑定、指令和其他逻辑操作。

<h1>Hello Angular!</h1>
<p>{{ message }}</p>
样式 (Style):用于定义组件的外观和样式,可以是内联样式、内部样式或外部样式文件。
h1 {color: blue;
}p {font-size: 14px;
}


元数据装饰器 (Metadata Decorator)

使用装饰器来修饰组件类,并提供一些元数据信息。常用的装饰器包括 @Component、@Input、@Output 等,它们用于配置组件的各个方面,如选择器、模板、样式等。

import { Component, Input } from '@angular/core';@Component({selector: 'app-example',template: '<h1>Hello Angular!</h1>',
})
export class ExampleComponent {@Input() name: string;// ...
}


输入属性 (Input Property)

用于将父组件的数据传递给子组件。通过 @Input 装饰器来定义输入属性,并通过组件的标签属性进行传递。
<app-example [name]="userName"></app-example>
输出属性 (Output Property):用于从子组件向父组件发送消息或数据。通过 @Output 装饰器和 EventEmitter 来定义输出属性,并通过事件绑定来响应子组件的行为。

import { Component, Output, EventEmitter } from '@angular/core';@Component({selector: 'app-example',template: '<button (click)="onButtonClick()">Click Me</button>',
})
export class ExampleComponent {@Output() buttonClick = new EventEmitter();onButtonClick() {this.buttonClick.emit();}
}

Angular 简单组件示例代码

组件是 Angular 应用程序的基本构建块,负责呈现用户界面和处理用户交互。在示例代码中,我们定义了一个名为 AppComponent 的组件。

import { Component } from '@angular/core';@Component({selector: 'app-root',template: `<h1>{{ title }}</h1><button (click)="changeTitle()">Change Title</button>`,styleUrls: ['./app.component.css']
})
export class AppComponent {title = 'My Angular App';changeTitle(): void {this.title = 'New Title';}
}

在上述代码中,@Component 装饰器用于给组件类 AppComponent 添加元数据。selector 字段指定了组件的选择器,这决定了如何在 HTML 中引用这个组件。在这个示例中,选择器为 app-root,表示我们可以在 HTML 中使用 <app-root></app-root> 标签来渲染这个组件。

template 字段指定了组件的模板,它使用了 Angular 的模板语法。在模板中,我们使用双花括号 {{ }} 进行插值绑定,将组件的 title 属性显示在 <h1> 标题元素中。我们还在模板中放置了一个按钮,当点击按钮时会调用组件中的 changeTitle() 方法。

styleUrls 字段是一个指向样式文件的路径数组,用于为组件应用样式。在这个示例中,我们将样式文件 app.component.css 与组件关联起来。

AppComponent 类是组件的实际实现。在这个类中,我们定义了一个名为 title 的属性,并初始化为 'My Angular App'changeTitle() 方法用于在按钮点击时更改 title 的值,将其设置为 'New Title'

接下来,我们需要创建一个根组件,并将其添加到应用程序中。

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { NgModule, Component } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';@NgModule({imports: [BrowserModule],declarations: [AppComponent],bootstrap: [AppComponent]
})
export class AppModule { }platformBrowserDynamic().bootstrapModule(AppModule);

在上述代码中,我们首先引入了一些必要的模块和组件。然后,我们创建了一个名为 AppModule 的根模块,并使用 @NgModule 装饰器来定义该模块。

imports 数组中导入了 BrowserModule 模块,该模块提供了运行在浏览器中的应用程序所需的一些关键功能。

declarations 数组中声明了根组件 AppComponent

在 bootstrap 数组中,我们指定了根组件 AppComponent,意味着该组件将作为应用程序的入口点。

最后,我们使用 platformBrowserDynamic().bootstrapModule(AppModule); 来启动应用程序,将根模块 AppModule 作为参数传递给 bootstrapModule 函数。

刚刚接触Angular,总结理论知识和简单例子,希望能帮助后来学习Angular的人。

大鹏一日同风起 扶摇直上九万里  

诸位加油

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/145637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让Git自动忽略指定文件

要让Git忽略指定文件&#xff0c;你可以使用.gitignore文件来实现。.gitignore文件允许你指定要从版本控制中排除的文件和文件夹。 以下是如何创建和设置.gitignore文件以忽略指定文件的步骤&#xff1a; 1.在你的项目根目录下创建一个名为.gitignore的文件。 2.使用文本编辑…

SpringMVC调用流程

SpringMVC的调用流程 SpringMVC涉及组件理解&#xff1a; DispatcherServlet : SpringMVC提供&#xff0c;我们需要使用web.xml配置使其生效&#xff0c;它是整个流程处理的核心&#xff0c;所有请求都经过它的处理和分发&#xff01;[ CEO ] HandlerMapping : SpringMVC提供&…

转录组分析小故事丨什么是RNAseq?

揭开转录组分析的面纱 亲爱的读者: 欢迎来到生物信息奇妙之旅&#xff01;我是您的导航员&#xff0c;今天将带您走进玉米的微观世界&#xff0c;一探真核生物有参转录组分析的秘密。 想象一下&#xff0c;我们将穿梭于DNA与RNA的世界&#xff0c;用数据的眼睛揭示生命的奥秘&a…

第四代智能井盖传感器:万宾科技助力城市安全

在繁华喧嚣的城市里人来人往&#xff0c;井盖作为基础设施的一个组成部分在路面上分布范围广。然而这些看似普通的井盖却存在着位移、水浸的风险&#xff0c;可能给我们的生活带来诸多不便&#xff0c;更会威胁到我们的人身安全。如何有效监测和管理井盖的状态&#xff0c;成为…

为什么选择CodeEase?

目录 为什么选择CodeEase核心功能后端前端 框架结构总结 为什么选择CodeEase CodeEase是一个标准化的低代码平台 愿景 我们励志开发一站式服务&#xff0c;缩短网站开发周期&#xff0c;降低程序bug率&#xff0c;减少开发人力和成本&#xff0c;推出了多租户SaaS平台开发模板…

SpringCloud Alibaba组件入门全方面汇总(上):注册中心-nacos、负载均衡-ribbon、远程调用-feign

文章目录 NacosRibbonFeignFeign拓展 Nacos 概念&#xff1a;Nacos是阿里巴巴推出的一款新开源项目&#xff0c;它是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助用户发现、配置和管理微服务&#xff0c;它提供了一组简单易用的特性集&am…

电源地虚接,导致信号线发烫

音频板的信号是经过隔直电容接到音频板的。

利用(Transfer Learning)迁移学习在IMDB数据上训练一个文本分类模型

1. 背景 有些场景下&#xff0c;开始的时候数据量很小&#xff0c;如果我们用一个几千条数据训练一个全新的深度机器学习的文本分类模型&#xff0c;效果不会很好。这个时候你有两种选择&#xff0c;1.用传统的机器学习训练&#xff0c;2.利用迁移学习在一个预训练的模型上训练…

JAVA JPA 使用实体类注解 @CreatedDate @LastModifiedDate自动生成创建和修改时间

JPA 使用实体类注解 CreatedDate LastModifiedDate自动生成创建和修改时间 说明&#xff1a;jpa实体添加数据库自动生成创建和修改时间 1.ApplicationBootstrap增加以下注解 EnableJpaAuditing2.实体类增加注解以下注解 Table(name"user") JsonIgnoreProperties(v…

【Linux专题】firewalld 过滤出接口流量

【赠送】IT技术视频教程&#xff0c;白拿不谢&#xff01;思科、华为、红帽、数据库、云计算等等_厦门微思网络的博客-CSDN博客文章浏览阅读428次。风和日丽&#xff0c;小微给你送福利~如果你是小微的老粉&#xff0c;这里有一份粉丝福利待领取...如果你是新粉关注到了小微&am…

智慧工地解决方案,实现安全预警、机械智能监控、作业指导、绿色施工、劳务管理、工程进度监控、施工质量检查

智慧工地云平台全套源码 智慧工地平台采用先进的云计算、物联网和大数据技术&#xff0c;可以实现智慧工地方案的落地。能够实现实时掌控工地活动及各项进度&#xff0c;有效预防违章施工。能够为工地提供多项服务&#xff0c;如安全预警、机械智能监控、作业指导、绿色施工、劳…

JVM bash:jmap:未找到命令 解决

如果我们在使用JVM的jmap命令时遇到了"bash: jmap: 未找到命令"的错误&#xff0c;这可能是因为jmap命令没有在系统的可执行路径中。 要解决这个问题&#xff0c;可以尝试以下几种方法&#xff1a; 1. 检查Java安装&#xff1a;确保您已正确安装了Java Development …

Spring Boot EasyPOI 使用指定模板导出Excel

相信大家都遇到过&#xff0c;用户提出要把界面上的数据导成一个Excel&#xff0c;还得是用户指定的Excel格式&#xff0c;用原生的POI&#xff0c;需要自己去实现&#xff0c;相信是比较麻烦的&#xff0c;所以我们可以使用开源的EasyPOI. 先上个图&#xff0c;看看是不是大家…

ES Kibana windows 安装

ES & Kibana windows 安装 声明&#xff1a; 本文没有实际操作过&#xff0c;只记录。具体操作请参考 ES & Kibana 安装 该文章 JDK1.8&#xff0c;最低要求&#xff01;ElasticSearch客户端&#xff0c;界面工具&#xff01; Java开发&#xff0c;ElasticSearch的版…

Newman

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;如何安装Newman 1、下载并安装NodeJs 在官网下载NodeJs&#xff1a; Download | Node.js&#xff08;官网的…

2023.11.14 关于 Spring Boot 创建和使用

目录 Spring Boot Spring Boot 项目的创建 网页版创建 Spring Boot 项目 Spring Boot 目录说明 项目运行 Spring Boot Spring Boot 是基于 Spring 设计的一个全新的框架&#xff0c;其目的是用来简化 Spring 的应用、初始搭建、开发的整个过程Spring Boot 就是一个整合了…

初认识vue,v-for,v-if,v-bind,v-model,v-html等指令

vue 一.vue3介绍 1.为什么data是函数而不是对象? 因为vue是组件开发,组件会多次复用,data如果是对象,多次复用是共享,必须函数返回一个新的对象 1. 官网初识 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS …

UTC秒数与年月日时分秒的转换

闰年是指公历中每四年中有一个多出来的闰日&#xff08;2月29日&#xff09;的年份。判断一个年份是否为闰年&#xff0c;可以按照以下规则进行判断&#xff1a; 如果一个年份能够被4整除&#xff0c;但不能被100整除&#xff0c;则它是闰年。例如&#xff0c;2004年是闰年&am…

大数据爬虫分析基于Python+Django旅游大数据分析系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Python和Django的旅游大数据分析系统是一种使用Python编程语言和Django框架开发的系统&#xff0c;用于处理和分…

DSP生成hex方法

以下使用两种方法生成的HEX文件&#xff0c;亲测可用 &#xff08;1&#xff09;万能法 不管.out文件是哪个版本CCS编译器生成的&#xff0c;只要用HEX2000.exe软件&#xff0c;翻译都可以使用。方法&#xff1a; hex2000 -romwidth 16 -memwidth 16 -i -o 20170817chuankou…