當前文章的短網址連結為: https://unos.top/1f6s
瞬态(Transient)生命周期很简单。瞬态生命周期意味着每次都会获得一个新实例。这对于Blazor WASM和Blazor Server都是相同的。
单例(Singleton)生命周期意味着在Blazor WASM中,整个应用程序运行期间只会获得一个实例。如果确实需要在所有用户和标签页之间共享实例,需要将其放在服务器上,并通过调用服务器来访问。但在Blazor Server中,所有人使用的是同一个实例。请确保不要在单例中存放任何用户信息,因为这会导致信息泄露给其他用户(非常糟糕!)。
作用域(Scoped)生命周期在Blazor WASM中与单例(Singleton)生命周期相同。但在Blazor Server中需要格外小心。Blazor Server在浏览器和服务器之间使用SignalR连接(称为电路),作用域实例与电路相关联。如果需要对特定组件实现作用域行为,可以从OwningComponentBase类派生。