首页 > 其他分享 >Blazor学习记录五_组件生命周期_____

Blazor学习记录五_组件生命周期_____

时间:2024-03-25 20:44:35浏览次数:28  
标签:生命周期 _____ value 泛型 参数 Value 类型 组件 Blazor

15.组件生成周期,已由ComponentBase默认实现

image

  • 1.设置参数前 SetParameterAsync
  • 2.初始化 OnInitialized/OnInitializedAsync
  • 3.设置参数后 OnParameterSet/OnParameterAsync
  • 4.通知组件渲染 StateHasChanged
  • 5.组件渲染呈现后 OnAfterRender/OnRenderAsync
  • 6.组件删除前 DisPose
  • Parent Re-render Or Update Paramters
  • 判断是否渲染组件 ShouldRender

16.泛型组件

从架构的角度来考虑设计问题,组件本身是一个类,泛型支持会增加如同C#泛型类型一样的良好的复用性。

1.组件中泛型占位符的设计

@ytpeparam T 指令来声明 T 是类型占位符。在code中就可以使用 T 做为变量的类型定义,如:[Parameter]public T Shape{get;set;}

2.消费者对组件中泛型的使用

调用者直接在泛形组件中使用参数的型式来把具体类型传递给泛型组件,如:<GenaricComponent T="int" Shape="20">,如果传了值20,则可以省略类型参数(T="int")的传递,C#可自动推导。

3.泛型约束

@ytpeparam T where T:class,IComparable<T>,new()

4.其他说明

泛型类型可声明多个。

5.示例,做一个兼容所有值类型的泛型组件 input

  • 注意:如果要从OnChange(ChangeEventArgs e)事件参数做类型转换,要使用Convert.ChangeType(value,typeof(T))
    如果要把值类型再显示在input组件文本框中,则需要使用绑定转换器 BindConverter.FormatValue(value)?.ToString();
    OnChange(ChangeEventArgs e)
    {
    var value = e.Value;
    if(value is null)
    return Task.CompeletedTask;
    var newValue = Convert.ChangeType(value,typeof(T));
    Value = (T)newValue;
    ValueChanged.InvokeAsync(Value);
    }

标签:生命周期,_____,value,泛型,参数,Value,类型,组件,Blazor
From: https://www.cnblogs.com/hrx521/p/18095298

相关文章

  • 激光雷达原理、分类和发展趋势
    激光雷达原理、分类和发展趋势本篇是激光雷达系列的第一篇文章,主要介绍激光雷达的基本原理、分类和发展趋势。附赠自动驾驶学习资料和量产经验:链接1.基本概念和分类1.1简介激光雷达(Lidar,LaserDetectingandRanging,激光探测和测距)是一种通过发射和接收激光束,来实现目标......
  • Typora安装及使用
    【一】下载Typora软件【1】下载官网https://typoraio.cn/系统重装会失效【2】破解方法(1)破解步骤!C:\ProgramFiles\Typora\resources中替换app.asar文件点击安装包一直下一步使用key.txt激活密钥【3】使用方法及快捷键(1)标题语法及快捷键最多6级标题代码方......
  • 关于我对于计算机专业的思考与展望
    1.回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领域)?我报考的时候是对计算机专业很有兴趣,所以选择了计算机专业,现在没有后悔选择了这个专业,可以通过编程实现很......
  • 038Confluence数据导出或备份
    一、从Confluence导出zip文件Server版导出步骤打开需要迁移的空间,选择空间管理,点击内容工具>导出。在导出格式中勾选HTML,点击下一个,选择普通导出。勾选需要导出的空间页面,选择完毕后点击导出。导出完毕后,点击here下载到本地 注:空间管理按键通常在页面左下......
  • 怎么解决因全表扫描带来的 Buffer Pool 污染
    全表扫描这种情况的查询,很多缓冲页其实只会被访问一次,但是它却只因为被访问了一次而进入到young区域,从而导致热点数据被替换了LRU链表中young区域就是热点数据,只要我们提高进入到young区域的门槛,就能有效地保证young区域里的热点数据不会被替换掉MySQL是这样做的......
  • 高维前缀和/SOS DP 学习笔记
    JOISC2023D2T2Council注意到,钦定一个人为主席后,对于此时得票数大于\(\lfloor\frac{n}{2}\rfloor\)的议案,不管怎么选副主席,均能通过;对于此时得票数小于\(\lfloor\frac{n}{2}\rfloor\)的议案,不管怎么选副主席,均不能通过。所以需要考虑的只有此时得票数恰好等于\(\lfloo......
  • 如何实现线程,如何实现线程池
    如何实现线程在Java中实现线程主要有以下三种方式:继承Thread类。定义一个继承自Thread的子类,并重写run方法,该run方法定义了线程要执行的任务。在子类中创建一个Thread对象,并调用其start方法来启动线程。1234实现Runnable接口。定义一个类来实现Runnable接......
  • Codeforces Round 936 (Div. 2) E
    SofiaandStrings题面翻译\(t\)组数据。每一次测试,有长度为\(n\)的序列\(s\),长度为\(m\)的序列\(t\)。你可以对\(s\)进行两种操作:删除\(s_i,1\lei\le|s|\)(\(s\)从\(1\)开始标号).将\(s_l,s_{l+1},\dots,s_r\)排序(\(1\lel\ler\le|s|\))。上面\(|s|......
  • 第五周周一(安卓端连接服务端)
    学会了安卓连接服务端的方法,使用OKhttp3服务端代码:packagecom.example.okhttp3;importjava.io.IOException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.h......
  • 01、路由策略简介
    路由策略简介定义:路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。目的:路由协议在发布、接收和引入路由信息时,根据实际组网需求实施一些策略,以便对路由信息进行过滤和改变路由信息的属性,如:控制路由的接收......