
- 1、组件初始化
- 当组件从其父组件收到其初始化参数后,将调用OnInitalizedAsync和OnInitialized。
- 在组件同步操作时,请重写OnInitalized
- protected override void OnInitialized()
- {
-
- }
- 在组件执行异步操作时,请重写OnInitializedAsync
- protected override Task OnInitializedAsync()
- {
-
- }
- 在预呈现Blazor Server应用时,会调用OnInitializedAsync两次;
- 初始以静态方式呈现组件;
- 当浏览器与服务器建立连接时会再次呈现组件
- 若防止OnInitializedAsync执行两次;
- 传入一个标识符,该标识符可以在预呈现期间缓存状态,并在预呈现检索状态;
- 在预呈现Blazor Server应用时,某些操作(如调用JavaScript)是不能执行的,因为尚未建立与浏览器的连接,在预呈现时组件可能需要以不同的方式呈现这时可以组件的
- OnAfterRenderAsync生命周期事件仅在完全呈现组件并建立客户端连接后,才调用此事件。
- 2、设置参数之前
- SetParametersAsync用来设置由呈现树中的父组件提供的参数;
- public override async Task SetParametersAsync(ParameterView parameters)
- {
-
- }
- ParameterView包含每次调用SetParametersAsync时的完整参数集。
- SetParametersAsync的默认实现是将每个属性的值设置为在ParameterView中具有响应值的[Parmeter]特性或[CascadingParameter]特性。在ParameterView中,没有相应值将保
- 持不变。
- 如果未调用base.SetParametersAsync,则自定义代码以任何所需的方式解释传入参数值,例如不要求传入参数分配给类的属性。
- 3、设置参数之后
- 当组件已初始化并收到其父组件的第一组参数时;
- 当父组件重新呈现并提供参数时;
- 至少有一个参数已更改(基元为不可改变类型)
- 任何复杂类型的参数。(则会调用OnParametersSetAsync)
- 异步
- protected override async Task OnParametersSetAsync()
- {
- return base.OnParametersSetAsync();
- }
- 同步
- protected override Task OnParametersSetAsync()
- {
- return base.OnParametersSetAsync();
- }
- 4、组件呈现之后
- 当组件呈现之后,将调用OnAfterRender和AfterRender,此时将填充元素和元素组件引用。在此阶段,可以使用呈现的内容执行其他初始化步骤,如激活在呈现的Dom元素上操
- 作的第三方JavaScript库。
- OnAfterRender和AfterRender参数作用如下:
- 在第一次呈现组件实例时,设置为true;
- 可用于确保禁止性一次初始化工作。
- protected override async Task OnAfterRenderAsync(bool firstRender)
- {
- return base.OnAfterRenderAsync(firstRender);
- }
- 同步
- protected override void OnAfterRender(bool firstRender)
- {
- base.OnAfterRender(firstRender);
- }
- 在服务器上预呈现Blazor时不会调用OnAfterRender和OnAfterRenderAsync
- 5、禁止UI刷新
- 重写ShouldRender来取消UI刷新,如果实现则返回true,否则刷新UI
- protected override bool ShouldRender()
- {
- return true;
- }
- 每次调用ShouldRender。即使ShouldRender被重写,组件也始终是最初呈现的。
- 6、状态更改
- StateHasChanged用来通知组件状态已更改,若调用StateHasChanged方法,则会导致组件重新呈现。
- 7、JavaScript互操作
- 需要第三方JavaScript库和访问浏览器API的应用,组件需要与JavaScript进行互操作组件能够使用JavaScript能够使用的任何库或API。c#代码可以调用JavaScript代码,
- JavaScript是可以调用c#代码。
- 8、通过,NET代码调用JavaScript函数
- 有时需要通过.net代码才能调用JavaScript函数。IJSRuntime抽象。若要发出JS互操作调用,请在组件中注入IJSRuntime。InvokeAsync<T>方法采用JavaScript函数的标志符。
评价
排名
11
文章
201
粉丝
10
评论
13
EF连接MySQL连接MySQL数据库操作中文数据乱码解决方法
剑轩 :
准确点应该是ef连接mysql
Layui插件上传图片具体步奏以及获取图片地址
风清月 : 厉害老!
Action与Func的用法-----委托
剑轩 : 可以可以
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术