角信号:最佳实践在暴露的信号
一些最佳实践正在成为中可用的信号开发者预览版与角16。
提醒一下,这是我们如何创建一个与角信号:
货币=信号(美元);
这将创建一个WritableSignal,这意味着任何代码,参考信号可以更新它的价值:
currency.set (CAD);
而能够更新一个信号从任何地方可以方便,它还可以导致组件占据太多的应用程序的业务逻辑。角,我们想将这部分委托给服务,这就是为什么当使用RxJs科目,我们进入暴露他们的习惯为只读可见:
私人currencySubject = new BehaviorSubject(美元);
getCurrency $():可观察到的<字符串> {
返回this.currencySubject.asObservable ();
}
信号我们可以应用同样的想法,因为角团队方便包括只读方法返回一个信号:
私人currencySignal =信号(美元);
<字符串> {getCurrencySignal():信号
返回this.currencySignal.asReadonly ();
}
在上面的代码是有效的,它有一个缺点。阅读的价值信号,我们必须调用它作为一个函数。这意味着上述公共信号可以被称为这样一个组件模板:
我的信号值是:{{getCurrencySignal () ()}}
双重括号不理想。
相反,我们可以使用getter语法让信号作为一个公共类属性:
私人currencySignal =信号(美元);
得到货币():信号<字符串> {
返回this.currencySignal.asReadonly ();
}
和我们的HTML模板就变成:
我的信号值是:{{货币()}}
很多人认为:“我们在一个模板调用一个方法;这是一个角反模式!”你在正常情况下是正确的,但信号是不同的。
的主要目标之一是角信号提高变化检测是如何工作的在角框架。作为一个结果,ieee组件工作不同,只会重新当此类组件所使用的信号得到更新。
作为一个结果,它不会花费任何东西了在ieee组件的模板调用方法。不仅如此,这些组件将会更快和更当它归结为确定准确的特定视图的变化检测和组件。
我的名字是betway必威滚球。我是谷歌开发者角度,专家顾问和教练角训练我帮助web开发团队学习和熟悉角。
如果你需要任何帮助web开发,随时取得联系!
如果你喜欢这篇文章,请为它鼓掌或分享它。我总是感激你的帮助。你也可以订阅我的文章和订阅我的每日角通讯获得有用的日常小贴士。