• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    400-123-4567

    电子邮件

    1691000615@qq.com
  • 星点互联APP

    随时掌握企业动态

  • 扫描二维码

    关注星点微信公众号

Lv.4 学员组
6号会员,22活跃度,2019/01/10 加入学习
  • 11发帖
  • 11主题
  • 0关注
  • 0粉丝
这个人很懒,什么也没有留下。
优秀讲师更多
课堂交流更多
开启左侧

在Angular中操作DOM:意料之外的结果及优化技术

[复制链接]
Tommy子言 发表于 2019-1-11 16:30:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
我最近在NgConf的一个研讨会上讨论了Angular中的高级DOM操作的话题。我从基础知识开始讲起,例如使用模版引用和DOM查询来访问DOM元素,一直谈到了使用视图容器来动态渲染模版和组件。如果你还没有看过这个演讲,我鼓励你去看看。通过一系列的实践,你将可以快速地学会新知识,并加强认知。关于这个话题,我在NgViking 也有一个简单地谈话。

然而,如果你觉得那个版本太长了(译者注:指演讲视频)不想看,或者比起听,你更喜欢阅读,那么我在这篇文章总结了(演讲的)关键概念。首先,我会介绍在Angular中操作DOM的工具和方法,然后再介绍一些我在研讨会上没有说过的、更高级的优化技术。

你可以在这个GitHub仓库中找到我演讲中使用过的样例。

  1. @Component({
  2.   ...
  3.   template: `
  4.     <button (click)="remove()">Remove child component</button>
  5.     <a-comp></a-comp>
  6.   `
  7. })
  8. export class AppComponent {}
复制代码


解决这个任务的一个错误的方法就是使用Renderer或者原生的DOM API来直接移除<a-comp> DOM 元素:

  1. @Component({...})
  2. export class AppComponent {
  3.   ...
  4.   remove() {
  5.     this.renderer.removeChild(
  6.        this.hostElement.nativeElement, // parent App comp node
  7.        this.childComps.first.nativeElement // child A comp node
  8.      );
  9.   }
  10. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

精彩评论1

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz!X3.5 ©2001-2013 Comsenz Inc.星点互联设计( 鲁ICP(125234543) )