当前位置: 首页 > news >正文

Blazor 生命周期 测试

测试一:方法触发顺序

子组件:LifecycleTestComponent.razor

 1 @implements IDisposable
 2 
 3 <h3>LifecycleTestComponent</h3>
 4 <div>
 5     <p>Message is :@Message,Count is :@Count</p>
 6 </div>
 7 
 8 @code {
 9     [Parameter]
10     public int Count { get; set; }
11 
12     [Parameter]
13     public string? Message { get; set; }
14 
15     // 生命周期方法示例
16     protected override bool ShouldRender()
17     {
18         var guid = Guid.NewGuid();
19         Console.WriteLine($"ChildComponet: {nameof(ShouldRender)} : {guid}");
20         return base.ShouldRender();
21         //return false;
22     }
23 
24     public override Task SetParametersAsync(ParameterView parameters)
25     {
26         var guid = Guid.NewGuid();
27         Console.WriteLine($"ChildComponet: {nameof(SetParametersAsync)} : {guid}");
28 
29         return base.SetParametersAsync(parameters);
30     }
31 
32     protected override void OnInitialized()
33     {
34         base.OnInitialized();
35         var guid = Guid.NewGuid();
36         Console.WriteLine($"ChildComponet: {nameof(OnInitialized)} : {guid}");
37     }
38 
39     protected override void OnParametersSet()
40     {
41         base.OnParametersSet();
42         var guid = Guid.NewGuid();
43         Console.WriteLine($"ChildComponet: {nameof(OnParametersSet)} : {guid}");
44     }
45 
46     protected override void OnAfterRender(bool firstRender)
47     {
48         base.OnAfterRender(firstRender);
49 
50         var guid = Guid.NewGuid();
51         Console.WriteLine($"ChildComponet: {nameof(OnAfterRender)} : {guid}");
52     }
53 
54     public void Dispose()
55     {
56         var guid = Guid.NewGuid();
57         Console.WriteLine($"ChildComponet: {nameof(Dispose)} : {guid}");
58     }
59 }
子组件:LifecycleTestComponent.razor

 

父组件:Counter.razor

@page "/counter"
@rendermode InteractiveServer
@implements IDisposable<PageTitle>Counter</PageTitle><h1>Counter</h1><p role="status">Current count: @currentCount</p><button class="btn btn-primary" @onclick="IncrementCount">Click me</button><br />
<LifecycleTestComponent Message="@currentMessage" Count="currentCount"></LifecycleTestComponent><br /><input @bind="@currentMessage" @bind:event="onchange"/>@code {private int currentCount = 0;private string? currentMessage = "Hello World";private void IncrementCount(){currentCount++;}// 生命周期方法示例protected override bool ShouldRender(){var guid = Guid.NewGuid();Console.WriteLine($"ParentComponet: {nameof(ShouldRender)} : {guid}");return base.ShouldRender();}public override Task SetParametersAsync(ParameterView parameters){var guid = Guid.NewGuid();Console.WriteLine($"ParentComponet: {nameof(SetParametersAsync)} : {guid}");return base.SetParametersAsync(parameters);}protected override void OnInitialized(){base.OnInitialized();var guid = Guid.NewGuid();Console.WriteLine($"ParentComponet: {nameof(OnInitialized)} : {guid}");}protected override void OnParametersSet(){base.OnParametersSet();var guid = Guid.NewGuid();Console.WriteLine($"ParentComponet: {nameof(OnParametersSet)} : {guid}");}protected override void OnAfterRender(bool firstRender){base.OnAfterRender(firstRender);var guid = Guid.NewGuid();Console.WriteLine($"ParentComponet: {nameof(OnAfterRender)} : {guid}");}public void Dispose(){var guid = Guid.NewGuid();Console.WriteLine($"ParentComponet: {nameof(Dispose)} : {guid}");}}
父组件:Counter.razor

 

http://www.jsqmd.com/news/403166/

相关文章:

  • 2026年 Claude Pro 国内充值全攻略:告别封号与被拒,实测最稳代充方案
  • 2026噪音检测设备选购大盘点:分贝仪、声级计、监测系统全覆盖 - 品牌推荐大师1
  • python基于flask基于微信小程序的英语单词词汇学习系统 (编号:49923290)
  • 2026最新最新PVC发泡板生产商top10推荐!环保/家装/外贸/工程/商业场景优质服务商权威榜单发布 - 品牌推荐2026
  • python基于flask基于微信小程序的社区养老服务系统(编号:58905211)(1)
  • 2026最新PVC发泡板生产商top10推荐!环保/家装/外贸/工程/商业场景优质服务商权威榜单发布 - 品牌推荐2026
  • python基于flask基于微信小程序的校园二手交易平台(编号:06863244)(1)
  • python基于flask基于微信小程序的校园大学生生活学习服务平台(编号:27488143)
  • python基于flask基于微信小程序的大学生心理音乐治疗的设计与实现(编号:54964396)
  • python基于flask基于微信小程序的学生选课成绩评估系统 学业导师制设计与实现(编号:84033202)
  • 【JAVA算法|hot100】哈希类型题目详解笔记
  • 人声伴奏分离工具5款实测精选
  • Chatbot自然语言转SQL的底层实现与工程实践
  • AI智能客服搭建实战:从技术选型到生产环境部署
  • 基于AI的智能客服系统:从架构设计到生产环境部署的实战指南
  • Uniapp微信小程序对接腾讯云智能客服的AI辅助开发实践
  • AI辅助开发中的Chatbot切片策略:高并发场景下的实现与优化
  • 企业微信智能客服群聊回复的AI辅助开发实战:从架构设计到性能优化
  • Chatbot Arena排名深度解析:如何正确解读与实战应用
  • LangChain RAG 在智能客服中的实战应用与架构解析
  • ChatGPT Prompt Engineering实战指南:开发者如何构建高效AI辅助开发流程
  • Java AI智能客服项目实战:从架构设计到生产环境避坑指南
  • 客服智能体搭建实战:从架构设计到性能优化的全链路指南
  • AI辅助开发实战:扣子智能客服架构解析与性能优化指南
  • 基于Dify构建智能客服系统的架构设计与实战避坑指南
  • ChatGPT Code Interpreter 实战指南:从数据处理到自动化工作流
  • HarmonyOS应用开发实战(基础篇)Day09-《构建布局详解下》
  • Koodo Reader(开源电子书阅读器)
  • 智能客服运营效率提升实战:从架构优化到精准分流
  • 用一个厨房故事,看懂Java高并发(通俗无门槛,小白也能懂)