第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

試試Angular的新信號(hào)輸入遷移功能

作者们:保罗·格申德特纳,Mark Thompson [https://bsky.app/profile/marktechson.com]

信号输入特性现已准备好生产使用,Angular团队非常高兴能提供新的迁移工具来帮助你和你的团队将基于装饰器的输入更新为新的信号API,以适应新的信号API。

查看官方文档中的更多详情:https://angular.dev/reference/migrations/signal-inputs

为什么要搬家?

信号输入提供了出色的输入功能更新,同时保持了与基于装饰器的输入的功能相同。团队想要更新的主要原因之一是类型安全特性,这使开发人员能够移除如非空断言这样的脆弱代码模式。还有个很棒的新方法,使输入监控变得更简单。

下面举一个例子,其中 MyComponent 使用 ngOnChanges 生命周期钩子来跟踪输入的变化。

export class MyComponent implements OnChanges {  
  @Input() myField: string = 'Initial';  
  result = expensiveResultUsingInput(this.myField);  

  ngOnChanges(changes: SimpleChanges) {  
    if (changes['myField']) {  
      // 属性变化时重新计算结果  
      this.result = expensiveResultUsingInput(this.myField);  
    }  
  }  
}

这个代码可以使用信号输入(signal inputs)和Angular的computed进行简洁地重构。

export class MyComponent {  
  readonly myField = input('初始');  
  readonly result = 计算属性(() => 基于输入的耗时计算结果(this.myField()));  
}

这样的新解决方案将不断涌现,因为开发者自然倾向于使用方便的信号API来编写更清晰和有效的代码,在你的项目和生态系统里。

我们注意到,信号(Signal)总体上简化了Angular开发者的思维模型,这让理解状态如何同步到UI,以及状态的流动情况更简单。

这样做

就像以前的迁移一样,你可以通过 Angular CLI 运行迁移。但我们也将迁移工作提升为 VSCode 中可供执行的代码重构操作。点击黄色灯泡会显示新的操作建议,用于将基于装饰器的输入转换为基于信号的输入。

使用 Angular CLI 时,可以执行以下命令:

ng 生成命令 @angular/core:信号输入

迁移完成后,该工具不仅会更新@Input声明,并在必要时引入变量,以智能地将信号合理地整合到现有应用程序代码中,还会调整对输入的引用,以确保合理整合信号到现有代码中。

咱们来考虑一下这个例子。

以前:

@Component(…)  
export class MyComp {  
  @Input() user?: User|undefined;  
  // 打印用户信息
  printUser() {  
    if (this.user) {  
      this.user.printDetails();  
    }  
  }  
}

之后呢:

@Component(...)  
export class MyComp {  
  readonly user = input<User>();  
  // 用户是一个只读的 User 类型的输入变量

  printUser() {  
    // 打印用户信息的函数
    const user = this.user();  
    if (user) {  
      user.printDetails();  
    }  
  }  
}

迁移是可配置的,并提供了一些选项来帮助您选择正确的迁移策略,不论是全面迁移还是仅迁移特定路径。您可以在迁移文档中了解更多详情。

我们激动不已能够推动 Angular 前进,并逐步实现我们构建一个新反应式模型的目标,让你能够自信地开发 web 应用。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消