小白的晋级之路--Angular

本文介绍了Angular开发中的关键知识点,包括@ViewChild的使用、获取路由参数、loadChildren的延迟加载、请求代理的配置、路由原理及守卫、constructor与ngOnInit的区别、响应式与模板驱动表单的数据流,以及如何通过命令创建组件。通过这篇博客,读者可以深入理解Angular的多个核心概念。
摘要由CSDN通过智能技术生成

目录

一、@ViewChild

二、获取路由参数

三、loadChildren

四、Angular请求另一服务的API(请求代理)

五、angular路由

六、Angular之constructor和ngOnInit差异及适用场景

七、表单中的数据流

1、响应式表单中的数据流

2、模板驱动表单中的数据流


现在接触的技术栈是Angular,从零开始,点滴积累,努力提升。

一、@ViewChild

https://www.jianshu.com/p/ac5366abfa74

providers: [ ChildService ]

在上面的子组件里面provider里面提供了一个ChildService类。我们也是可以通过@ViewChild来拿到这个ChildService类的。代码如下

@ViewChild(ChildService) childService: ChildService;

 项目中有个功能是修改密码,将修改密码这个模态框封装为一个组件,嵌入在主页面中,那么在主页面中是这样引入的:

<modify-password #modifyPwd></modify-password>
修改密码所触发的方法:<li nz-menu-item (click)="modifyPassword()">修改密码</li>
在ts文件中是这样引入的:@ViewChild('modifyPwd', {static: false}) modifyPwd;
这样调用的:
modifyPassword() {
    // 修改密码
    this.modifyPwd.show();
  }
而在修改密码模态框的ts文件中show方法是这样的:
show() {
    this.oldPassword = '';
    this.newPassword = '';
    this.repeatPassword = '';
    this.isVisible = true;
  }

二、获取路由参数

this.route.queryParams.subscribe(queryParams => {
   let productId = queryParams.productId;
   let title = queryParams.title;
});

三、loadChildren

在看代码的过程中,发现路由有这样两种表现形式:

loadChildren是延迟加载子模块,这对于加载页面的性能有很好的提升。通俗的讲就是说进入主模块的时候,子模块不加载,等需要进入子模块的时候才加载。项目划分模块的时候,使用loadChildren配置路由是最佳选择方案。

因此当访问子模块的时候,就回去找相应目录下export的模块。

四、Angular请求另一服务的API(请求代理)

看代码的时候,想知道前端是如何向服务端发送请求的,结果找service文件没发现有请求地址。请教之后,知道使用了代理。直接创建一个proxy.conf.json文件,定义所有/api的请求重定向到http://api.yourdomai.com。

而在angular.json文件中,angular-cli已经有这个命令了,在我们启动项目的时候,会请求这个代理,而我们在写代码的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Delicia_Lani

你的鼓励将是我写作的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值