Angular知识整合一:Angular中的组件和一些基本概念

2023-11-11

什么是Angular?

Angular是一个基于TypeScript构建的开发平台,它包括一下三个部分:

  • 一个基于组件的库
  • 一组涵盖路由、表单管理、客户端服务端通信等各种功能继承的库
  • 一套开发、构建、测试、更新代码的工具

Angular中的知识点

什么是组件

1、在Angular中,组件是构成应用的元素。
2、组件包括三个部分:带有@Component()装饰器的TypeScript类、HTML模板和样式文件

下面代码是一个最小化的Angular组件,七中@Component()装饰器会指定三个angular专属的信息:

  • CSS选择器,在其他地方使用这个组件时,通过selector来使用
  • HTML模板,定义当前组件的结构
  • 一组CSS样式,用于定义当前组件HTML模板的样式
import { Component } from '@angular/core';

@Component({
	selector: 'my-angular',
	template: `<h1>自定义我的angular组件</h1>`,
	styles: [`color: #000`]
})
export class MyAngularComponent {
	console.log('This is My-angular component!');
}

在其他模板中使用my-angular组件时,通过selector的值来引入该组件

<my-angular></my-angular>

当Angular渲染该组件时,生成的DOM如下所示:

<my-angular>
	<h1>自定义我的angular组件</h1>
</my-angular>

什么是模板

组件的HTML模板,用于声明组件的渲染方式,可以在@Component()装饰器中使用template内联或者templateUrl引入外部文件

模板中使用插值

在Angular的模板文件中,可以通过双花括号的方式在组件模板中插入动态值:

<h1>{{text}}</h1>
import { Component } from '@angular/core';

@Component({
	selector: 'my-angular',
	templateUrl: './my-angular.component.html',
})
export class MyAngularComponent {
	var text = 'this is my angular!'
}

如上所示,HTML文件中,双花括号中的text的值来自对用的组件类。
Angular完成渲染之后用户实际看到的内容是<h1>this is my angular!</h1>

当组件类中text的值发生改变后,Angular会自动更新模板中已经渲染的DMO,通过这种方式,在开发中我们可以使用这种模板语法在页面中插入动态文本。

模板中使用属性绑定

在Angular的模板文件中,使用方括号的方式绑定Property和Attribute的值,使用圆括号指定事件名称来声明时间监听器:

<button [disabled]="canClick" [style.color]="btnColor" (click)="showMessage()">click</button>
import { Component } from '@angular/core';

@Component({
	selector: 'my-angular',
	templateUrl: './my-angular.component.html',
})
export class MyAngularComponent {
	canClick = false;
	btnColor = '#fff'
	showMessage(){
		alert('hello!');
	}
}

模板中的指令

Angular中最常用的指令是*ngIf*ngFor, 通过这两个指令,可以动态修改DOM结构。

在模板中使用*ngIf 指令:当showDiv的值为false时,Angular在渲染时会在DOM树种删除相关的节点。

<div *ngIf="showDiv"></div>

在模板中使用*ngFor 指令:
一般在模板中渲染一组结构相同,内容相似的节点时,使用 *ngFor 指令,该指令会根据组件类中指定的一组内容循环渲染该节点

<div *ngFor="let a of arr">{{a}}</div>
import { Component } from '@angular/core';

@Component({
	selector: 'my-angular',
	templateUrl: './my-angular.component.html',
})
export class MyAngularComponent {
	arr = [1,2,3]
}

开发中 *ngFor 和 *ngIf 指令结合使用,能灵活的修改DOM结构,创建出色的用户体验。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular知识整合一:Angular中的组件和一些基本概念 的相关文章

随机推荐

  • python英寸和厘米互换_将厘米转换为英寸的Python程序

    python英寸和厘米互换 There are many problems where we have to calculate the distance in inches at the end but initially the mea
  • Impala链接报错

    impala集成Kerberos链接报错 操作命令 impala shell i 10 250 122 40 19005 k s e3base Error connecting TTransportException Could not s
  • Windows 编程概述(使用 C++)

    Windows 编程概述 使用 C 1 命令行 控制台 应用程序 2 本机桌面客户端应用程序 3 COM 组件 4 通用 Windows 平台应用程序 5 桌面桥 6 游戏 7 SQL Server 数据库客户端 8 Windows设备驱动
  • Qt:QProcess实现cmd命令,带参数.exe程序

    首先引入都文件 include
  • C#系列-set,

    using System public class cls private int book 定义一个域 也可以叫变量 只是面向对像里都这么叫 使用起来也更加方便 public int Book get Console WriteLine
  • DateTimeFormatter、LocalDateTime 的使用

    由于SimpleDateFormat是线程不安全的 所以在多线程中可以使用线程安全的DateTimeFormatter 代替 SimpleDateFormat 阿里巴巴java开发手册推荐 如果是 JDK8 的应用 可以使用 Instant
  • printk,printf 打印调试

    includelinux kernel h define KERN EMERG lt 0 gt 紧急事件消息 系统崩溃之前提示 表示系统不可用 define KERN ALERT lt 1 gt 报告消息 表示必须立即采取措施 define
  • Docker----DockerSwarm集群环境弹性服务动态扩缩容

    详细内容见 DevOps技术社区文章 Docker DockerSwarm集群环境弹性服务动态扩缩容
  • 新词发现

    新词发现是 NLP 的基础任务之一 通过对已有语料进行挖掘 从中识别出新词 新词发现也可称为未登录词识别 严格来讲 新词是指随时代发展而新出现或旧词新用的词语 同时 我认为特定领域的专有名词也可归属于新词的范畴 何出此言呢 通常我们会很容易
  • osgfbo(六)从pass的角度考虑,改写fbo(二)

    什么是pass 这个问题 看似简单 也让我头疼 看了osgdefered pass定义为osg Camera 杨石兴的osg视频教程定义为osg Group 我认为一个passRoot可以定义为一个Group 包含三部分 到目前pass为止
  • RT-Thread Smart 用户态开发体验

    背景 RT Thread Smart 是基于 RT Thread 操作系统上的混合操作系统 它把应用从内核中独立出来 形成独立的用户态应用程序 并具备独立的地址空间 自 V5 0 0 起 rt smart 分支已合并至 master 分支上
  • QT从入门到放弃------制作QT界面

    QT从入门到放弃 一 制作QT界面 创建工程 点击New Project 依次点击下图的Application QT Widgets Application Choose 根据自己的需求选择工程名和存放路径 路径千万不要有中文 路径千万不要
  • QT从入门到实战x篇_01_如何在qtcreator中创建一个程序?(MSVC编译器)

    1 按照如下顺序选择 我这里没有选择console的是因为我只是自己创建界面 不需要控制台的出现 2 命名及选择地址 选择下一步 3 选择基类 是否需要系统自动生成ui文件 基类中有三种选项分别为QWideget QMainWindow Q
  • Linux三级 学习笔记(二)计算机体系结构与操作系统-操作系统

    1 4 操作系统的基本概念 1 4 1 操作系统的定义和作用 操作系统的作用可以从用户和系统俩个不同角度来看 用户视角 系统视角 1 用户视角 操作系统为用户提供的服务有 程序开发 程序运行 I O设备访问 文件访问 系统资源访问 错误检测
  • App 抓包提示网络异常怎么破?

    背景 当你测试 App 的时候 想要通过 Fiddler Charles 等工具抓包看下 https 请求的数据情况 发现大部分的 App 都提示网络异常 无数据等等信息 以 贝壳找房 为例 Fiddler 中看到的请求是这样的 你可能开始
  • 已安装 MySQL,但执行 mysql 命令提示命令找不到!

    因个人需要 在阿里购买了一个轻量应用服务器 服务器配好 LAMP 环境 但奇怪是的我想登录 MySql 却提示命令找不到 查看 MySQL 运行状态 却是 Active running 提交了阿里工单 可是感觉客服是答非所问 我也是很无奈
  • Windows Terminal 和 WSL 安装及配置

    一 打开开发者选项和传递优化 二 在Microsoft Store安装Windows Terminal和Ubuntu子系统 三 配置 Windows Terminal配置 打开settings json配置文件 修改如下 此项用来配置打开W
  • 重磅!瞄准 Web 3.0,谷歌云推出专为区块链服务的 Blockchain Node Engine!

    本文由 Cloud Ace 整理发布 更多内容请访问 Cloud Ace 官网 区块链技术正在为世界各地的消费者和企业带来巨大的创新和价值创造 随着技术变得越来越主流 公司需要可扩展 安全和可持续的基础设施来发展业务并支持他们的网络 谷歌云
  • LeetCode-1124. 表现良好的最长时间段【哈希表,前缀和,单调栈】

    LeetCode 1124 表现良好的最长时间段 哈希表 前缀和 单调栈 题目描述 解题思路一 查字典 cur是当前的前缀和 劳累与不劳累天数之差 向前遍历 有两种情况 情况一 若cur大于0则是 0 i 的劳累与不劳累天数之差一定最大 记
  • Angular知识整合一:Angular中的组件和一些基本概念

    什么是Angular Angular是一个基于TypeScript构建的开发平台 它包括一下三个部分 一个基于组件的库 一组涵盖路由 表单管理 客户端服务端通信等各种功能继承的库 一套开发 构建 测试 更新代码的工具 Angular中的知识