惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
美团技术团队
量子位
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
腾讯CDC
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
小众软件
小众软件
博客园 - 司徒正美
罗磊的独立博客
云风的 BLOG
云风的 BLOG
B
Blog RSS Feed
博客园 - 聂微东

博客园 - 毛毛虫

[Maui] 轮子——插件式开发 [Maui] Windows部署 [Maui] 造轮子——LoggerSqlite [Maui] 造轮子——Exception处理 [Maui] 造轮子——MessageBox [Maui] 造轮子——前言、本地化 [C#] 日积月累 [.net10] 极简数据库对象关系映射 [C#] 扩展Enumerable,实现类似Sqlserver的窗口函数lag [Blazor] 学习随笔——生命周期 [Blazor] 学习随笔——RZ10012警告的处理 [Blazor WebAssembly] 学习随笔——组件1.微信弹框(WXDialog) [Blazor WebAssembly] 学习随笔——身份验证 Asp.net Help ASP.NET Web 应用 Docker踩坑历程——续 [Net6]自己写个消息推送 Docker批处理笔记 Asp.net6.0 Swagger使用备忘 ASP.NET Web 应用 Docker踩坑历程
[Blazor] 学习随笔——呈现约定
毛毛虫 · 2024-03-28 · via 博客园 - 毛毛虫

中文版

从父组件应用一组已更新的参数之后。
为级联参数应用已更新的值之后。
通知事件并调用其自己的某个事件处理程序之后。
在调用其自己的 StateHasChanged 方法后

英文版

After applying an updated set of parameters from a parent component.
After applying an updated value for a cascading parameter.
After notification of an event and invoking one of its own event handlers.
After a call to its own StateHasChanged method (see ASP.NET Core Razor component lifecycle).

1.老爸把新的参数传给我了 实际上好像是老爸重新呈现了,儿子是否呈现要看能否判断参数是否变动。若是传递了一个类什么的,十有八九认为参数变动了,会重新呈现
儿子:

<h1>俺是儿子</h1>
<hr />
这是老爸给我的:@FatherPara
@code {
    [Parameter]
    public string? FatherPara{ get; set; }
}

老爸

@page "/"
<button @onclick="()=>Count++">儿子动一动</button>
<CC FatherPara="@Count.ToString()"></CC>
@code {
    int Count = 0;

}

2.级联参数的值变了
先祖

@page "/"
<button @onclick="()=>Count++">后辈动一动</button>
<CascadingValue Value="Count">
    <CC></CC>
</CascadingValue>
@code {
    int Count = 0;

}

**调用了

子孙

<h1>俺也许是十八代孙子</h1>
<hr />
这是祖先给我的:@Para
@code {
    [CascadingParameter]
    public int  Para{ get; set; }
}

3.通知事件,如@onclick啥的,呈现自己

@page "/"
<button @onclick="()=>Count++">自己动一动</button>
@Count
@code {
    int Count = 0;
}

4.调用StateHasChanged方法,呈现自己

@page "/"
<button @onclick="OnClickAsync">自己动一动</button>
<button @onclick="()=>OnClickAsync(3)">自己动一动</button>
@Count
@code {
    int Count;

    async Task OnClickAsync()
    {
        for (int i = 0; i < 3; i++)
        {
            Count++;
            StateHasChanged();
            await Task.Delay(500);
        }
    }
    async Task OnClickAsync(int times)
    {
        for (int i = 0; i < times; i++)
        {
            Count++;
            StateHasChanged();
            await Task.Delay(500);
        }
    }
}

其他时候,俺自巍然不动。若设置ShouldRender返回false,呈现以后,我一动不动。

 protected override bool ShouldRender()
 {
     return false;
 }