tnblog
首页
视频
资源
登录

Blazor生命周期

7189人阅读 2021/12/11 14:59 总访问:439565 评论:0 收藏:0 手机
分类: ASP.NET
  1. 1、组件初始化
  2. 当组件从其父组件收到其初始化参数后,将调用OnInitalizedAsync和OnInitialized。
  3. 在组件同步操作时,请重写OnInitalized
  4. protected override void OnInitialized()
  5. {
  6.   
  7. }
  8. 在组件执行异步操作时,请重写OnInitializedAsync
  9. protected override Task OnInitializedAsync()
  10. {
  11.             
  12. }
  13. 在预呈现Blazor Server应用时,会调用OnInitializedAsync两次;
  14. 初始以静态方式呈现组件;
  15. 当浏览器与服务器建立连接时会再次呈现组件
  16. 若防止OnInitializedAsync执行两次;
  17. 传入一个标识符,该标识符可以在预呈现期间缓存状态,并在预呈现检索状态;
  18. 在预呈现Blazor Server应用时,某些操作(如调用JavaScript)是不能执行的,因为尚未建立与浏览器的连接,在预呈现时组件可能需要以不同的方式呈现这时可以组件的
  19. OnAfterRenderAsync生命周期事件仅在完全呈现组件并建立客户端连接后,才调用此事件。
  20. 2、设置参数之前
  21. SetParametersAsync用来设置由呈现树中的父组件提供的参数;
  22. public override async Task SetParametersAsync(ParameterView parameters)
  23. {
  24.             
  25. }
  26. ParameterView包含每次调用SetParametersAsync时的完整参数集。
  27. SetParametersAsync的默认实现是将每个属性的值设置为在ParameterView中具有响应值的[Parmeter]特性或[CascadingParameter]特性。在ParameterView中,没有相应值将保
  28. 持不变。
  29. 如果未调用base.SetParametersAsync,则自定义代码以任何所需的方式解释传入参数值,例如不要求传入参数分配给类的属性。
  30. 3、设置参数之后
  31. 当组件已初始化并收到其父组件的第一组参数时;
  32. 当父组件重新呈现并提供参数时;
  33. 至少有一个参数已更改(基元为不可改变类型)
  34. 任何复杂类型的参数。(则会调用OnParametersSetAsync)
  35. 异步
  36. protected override async Task OnParametersSetAsync()
  37. {
  38.     return base.OnParametersSetAsync();
  39. }
  40. 同步
  41. protected override Task OnParametersSetAsync()
  42. {
  43.     return base.OnParametersSetAsync();
  44. }
  45. 4、组件呈现之后
  46. 当组件呈现之后,将调用OnAfterRender和AfterRender,此时将填充元素和元素组件引用。在此阶段,可以使用呈现的内容执行其他初始化步骤,如激活在呈现的Dom元素上操
  47. 作的第三方JavaScript库。
  48. OnAfterRender和AfterRender参数作用如下:
  49. 在第一次呈现组件实例时,设置为true
  50. 可用于确保禁止性一次初始化工作。
  51. protected override async Task OnAfterRenderAsync(bool firstRender)
  52. {
  53.     return base.OnAfterRenderAsync(firstRender);
  54. }
  55. 同步
  56. protected override void OnAfterRender(bool firstRender)
  57. {
  58.     base.OnAfterRender(firstRender);
  59. }
  60. 在服务器上预呈现Blazor时不会调用OnAfterRender和OnAfterRenderAsync
  61. 5、禁止UI刷新
  62. 重写ShouldRender来取消UI刷新,如果实现则返回true,否则刷新UI
  63. protected override bool ShouldRender()
  64. {
  65.     return true;
  66. }
  67. 每次调用ShouldRender。即使ShouldRender被重写,组件也始终是最初呈现的。
  68. 6、状态更改
  69. StateHasChanged用来通知组件状态已更改,若调用StateHasChanged方法,则会导致组件重新呈现。
  70. 7、JavaScript互操作
  71. 需要第三方JavaScript库和访问浏览器API的应用,组件需要与JavaScript进行互操作组件能够使用JavaScript能够使用的任何库或API。c#代码可以调用JavaScript代码,
  72. JavaScript是可以调用c#代码。
  73. 8、通过,NET代码调用JavaScript函数
  74. 有时需要通过.net代码才能调用JavaScript函数。IJSRuntime抽象。若要发出JS互操作调用,请在组件中注入IJSRuntime。InvokeAsync<T>方法采用JavaScript函数的标志符。


评价

ASP.NET Core Blazor 介绍

ASP.NET Core Blazor 介绍[TOC] 什么是WebAssembly? WebAssembly是浏览器中支持运行Wasm字节码的虚拟机规范。这...

ASP.NET Core Blazor 基础

ASP.NET Core Blazor 基础[TOC] 项目实践 项目环境 .NET Core 3.1 Blazor 创建项目 ...

Blazor组件作用

1、wwwrout静态文件存放网页配置文件 2、Data文件夹 向FetchData组件提供示例天气数据WeatherForecastService的WeatherFo...

Blazor特殊标记作用

1、@code{}内部是c#代码,包含ToggleNavMenu方法,是在@onclick=&quot;ToggleNavMenu&quot;中绑定次方法的设置collapseNavM...

Blazor WebAssembly和Blazor Server

BlrazorWebAssembly 1、BlazorWebAssembly是一个单页面框架,可以通过.net生成交互式客户端Web应用。BlazorWebAssembly使...

Blazor的JavaScript和c相互调用

1、c#调用JavaScript privateMarkupStringmarkup=newMarkupString(); privatestringdate=DateTime.Now.ToString(); priv...

Blazor的c调用JavaScript传参

1、新建类库ExampleMethed和BlazorMerhed privatestringname=&quot;张三&quot;; privatestringresult=string.Empty; pri...

在CoreWeb(视图模型控制器)中调用Blazor组件

1、创建Components文件夹,在文件夹下创建_Imports.razor全局组件相当于视图组件_ViewImports.cshtml和显示组件MyComponent...

MAUI Blazor 语言设置国际化

MAUI Blazor 语言设置国际化[TOC] I18nText 前言这个软件包是在Blazor Web应用程序中本地化文本的另一种方式!特性 Blazo...

c使用unity实现依赖注入三:unity常用生命周期

常用的生命周期有瞬时模式,单利模式,每个线程一个对象模式等。一:TransientLifetimeManagerTransientLifetimeManager模...

ASP.NET中webform中的几个生命周期函数

ASP.NET中webform中的几个生命周期函数,还有很多直接重写父类的虚函数就可以了publicpartialclassPageLearn:System.Web.UI...

依赖注入 生命周期

.net core里面依赖注入生命 大部分常用的就三总Scoped(作用域 也可以说是线程单例在同一个线程里是单例的Transient(瞬时...

servlet 生命周期 4

1、创建JavaWeb 项目...........2、继承HttpServlet抽象类重写诸多方法方法类容3、在web.xml的配置4、部署到tomcat。。。。...

过滤器生命周期 5

续写至过滤器的使用细节之多过滤器的使用 4篇1、创建新的过滤器主要内容2、在web.xml配置过滤
当你知道迷惑时,并不可怜,当你不知道迷惑时,才是最可怜的。
排名
11
文章
201
粉丝
10
评论
13
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术