Angular 容易忽略的知识点及注意事项

模板内的局部变量

<input #heroInput>
<p>{{heroInput.value}}</p>

调用子组件方法 :#child

<child #child></child>
<button (click)="child.childFn()" class="btn btn-success">调用子组件方法</button>

对于 @Input 型的属性,在构造函数里面是取不到值的,在 ngOnInit 里面才有值。

特别注意:对于业务开发者来说,一般只用到 ngOnInit 这个钩子,其它几个钩子在日常业务开发中是用不到的。

注意:用代码动态创建组件这种方式在一般的业务开发里面不常用,而且可能存在一些隐藏的坑,如果你一定要用,请小心避雷。

强烈建议你只做一个组件,就像 zTree 的作者那样,把一个组件做好、做透,并且长期维护下去。这比搞一个庞大的组件库,每个组件做得都像个玩具,然后突然弃坑要好很多。

如果要在同一个 HTML 元素上面使用多个结构性指令,可以考虑加一层空的元素来嵌套,比如在外面套一层空的 ,或者套一层空的

NgModule 是@angular/cli 打包的最小单位。打包的时候,@angular/cli 会检查所有@NgModule 和路由配置,如果你配置了异步模块,cli 会自动把模块切分成独立的 chunk(块)。这一点是和其它框架不同的,其它框架基本上都需要你自己去配置 webpack,自己定义切分 chunck 的规则;而在 Angular 里面,打包和切分的动作是@angular/cli 自动处理的,不需要你干预。当然,如果你感到不爽,也可以自己从头用 webpack 配一个环境出来,因为@angular/cli 底层也是用的 webpack。

你想啊,既然你启用了前端路由,也就意味着浏览器地址栏里面的那些 URL 在 Server 端并没有真正的资源和它对应,你直接访问过去当然 404 了。

以 Tomcat 为例,你需要在 web.xml 里面加一段配置:

404 / 这意思就是告诉 Tomcat,对于 404 这种事你别管了,直接扔回前端去。由于 Angular 已经在浏览器里面接管了路由机制,所以接下来就由 Angular 来负责了。

如果你正在使用其它的 WEB 容器,请从以下链接里面查找对应的配置方式:

https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions
Angular 新版本的路由机制极其强大,除了能支持无限嵌套之外,还能支持模块懒加载、预加载、路由守卫、辅助路由等高级功能,在接下来的几个小节里面我们就来写例子一一演示。

Angular Router 模块的作者是 Victor Savkin,这是他的个人 Blog:https://vsavkin.com/,他专门编写了一本小薄书来完整描述 Angular 路由模块的设计思路和运行原理,这本书只有 151 页,如果你有兴趣请点这里:https://leanpub.com/router。

【前端图片引入和处理】
@技术很有趣
如果是在ts文件中,需要require,即基于webpack的模块化方式,将引入后的图片变量赋值给对象属性,最终在页面加载的图片会在图片名称后面添加哈希值,类似pic-name122ae345.png。
如果是在css文件中,比如background-url属性,直接通过相对路径引入。最终在页面加载的图片会在图片名称后面添加哈希值,类似pic-name122ae345.png。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值