posts/angular-signals-zoneless/ #26
Replies: 1 comment
-
|
在 Angular Signals 中,使用 这实际上是一个 TypeScript/JavaScript 的作用域(Scope) 问题。我们可以分两种主要场景来理解: 1. 使用
|
| 访问方式 | 定义位置 | 典型例子 |
|---|---|---|
this.flag() |
定义在 class 内部,方法外部 |
class Comp { flag = signal(0); } |
flag() |
定义在方法/构造函数内部 (const) |
constructor() { const flag = signal(0); } |
flag() |
定义在文件顶部,class 关键字之外 |
const flag = signal(0); class Comp { ... } |
为什么官方文档有时写 const flag = signal(...)?
官方文档(如 angular.dev)在讲解基础概念时,为了让代码片段简洁,经常会直接写:
const count = signal(0);
console.log(count());
这只是为了演示 Signal 本身的功能。但在你实际编写 Angular 组件 时,绝大多数情况下你会把它写成类的属性,因此在逻辑代码(如 ts 文件)里几乎都要用 this.flag()。
注意: 在组件的 HTML 模板 中,你永远不需要写 this,直接写 {{ flag() }} 即可。
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
posts/angular-signals-zoneless/
深入讲解 Angular Signals 体系:signal()、computed()、effect() 的核心 API,Zoneless 模式的开启方式,以及如何将存量 Zone.js 组件渐进式迁移到 Signals 架构。
https://rowanliu.com/posts/angular-signals-zoneless/
Beta Was this translation helpful? Give feedback.
All reactions