angular总结1

1.angular程序架构

注:模块是一处完整的单元,由组件、指令、服务等组成,像积木一样,组件、指令、服务如同不同颜色、大小的积木,而模块则是这些积木组成的一个成品,如汽车、楼房等

2. 组件的必备元素为:装饰器(组件元数据装饰器@component),模板,控制器组成

装饰器:@component通知angular如何处理typescript类,component包含多个属性,这些属性叫做元数据,angular通过这些元数据来装饰typescript类

控制器:typescript类,被component装饰器来装饰器,与模板进行数据绑定进行通讯

angular非必备元素:

输入属性@inputs():用于接受外部传入的数据的,输入属性选择父组件可以直接传递数据给子组件,真个大组件就是一个组件树,父组件可拥有N个子孙组件,输入属性便是在这个组件树中进入传输数据的

提供器(providers):用于做依赖注入

生命周期勾子:组件从创建至销毁的过程

样式表:组件可关联一些样式表

动画:可自定义一些动画效果

输出属性@outputs():与输入组件相对使用,用于定义一些其他组件可能会感兴趣的事件,用于在组件间共享数据

3. 模块(app.module.ts)

使用@NgModule装饰器,其元数据有:

declarations: 所有的组件视图,只能声明组件、指令、管道

imports:依赖模块

providers: 用于声明服务

bootstrap:用于声明主模块

4. 引入第三库:jquery

(1) npm install jquery --save //--save将插件信息写入package.json

(2) 修改angular-cil.json文件

app下的styles属性添加样式文件

app下的script属性配置第三方插件 // ./node_modules/jquery/dist/jquery.js

(3) npm install @types/jquery --save //使typescript识别jquery语法

(4) tsconfig.app.json 引入 jquery 的类型声明文件
“types”: [ “../node_modules/@types/jquery/index.d.ts”] 
你也可以直接这么做:”types”:[“jquery”]

5. 生成组件命令

ng g component 组件名 //自动生成‘组件名’文件夹,其中包含html, ts, css, spe.ts四个文件,并会将信息更新至app.module.ts文件中

6.路由

单页应用(SPA):主页面只加载一次,不再刷新,只是改变页面上部分内容的应用,angular使用路由器来实现不跳转页面来加载应用的功能

  根路由:{path: '不可以/开关', component: '组件名'}        模板中可使用[routerLink]="['/']"路由跳转

子路由(路由父子关系):children: [path: '/seller/:id', component: HomeCoponent] 模板中使用[routerLink]="['./seller', 9]" // ./相对父路由,/相对根路由

保护路由:

     辅助路由(路由兄弟关系):[routerLink]="[{outlets: {primary: 'home', aux: 'chat'}}]"    //切换辅助路由时,主路由同时跳转至home

路由对象简介:

如何在路由时传递数据

(1)在查询参数中传递数据

/product?id=1&name=2 可使用ActivatedRoute.snapshot.queryParams['id']来获取数据参数

(2)在路由的路径中传递数据

{path: 'product/:id'} 可使用ActivatedRoute.snapshot.params[id]来获取数据

(3)在路由配置中传递数据

{path:'product', component: ProductComponent, data: [{isProd: true}] 使用ActivatedRoute.data[0][isProd]来获取数据。

注: snapshot参数快照,存在问题:数据存在误差,当两个相同路由进行导航时,由于 ngOnit只在组件创建时初始化一次,

故在第二次导航时不会再调用此生命周期,故在生命周期中获取参数获取的还是第一次的

改善:使用订阅的方式,修改(2) 的参数获取方法

this.ActivatedRoute.params.subscribe((params: Params) => this.productId = params['id']);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值