<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      深入淺出Blazor webassembly之理解RenderFragment

      Razor 的DOM可以使用html直接寫, 也可以使用 RenderFragment C#委托方法寫.

      RenderFragment C#代理方法會(huì)由 Blazor Renderer 引擎自動(dòng)調(diào)用, 我們不應(yīng)該主動(dòng)調(diào)用,  可將它們認(rèn)為作為  html snippet用于razor 的 html中.

      對(duì)于SPA的整個(gè)頁(yè)面, Blazor Renderer會(huì)維護(hù)一個(gè) RenderTree, 可以將整個(gè)DOM tree想象成一個(gè) RenderTree, Renderer引擎會(huì)采用 diff 算法來(lái)檢查DOM是否需要更新, 如果檢查到某個(gè)節(jié)點(diǎn)需要更新, Renderer 引擎調(diào)用我們的 RenderFragment 委托, 并將 RenderTreeBuilder 作為委托入?yún)? 完成重繪工作.

       

      ========================================

      Html 寫法與等效的RenderFragment 寫法

      ========================================

      @page "/hello"
      <div>
          hello world
      </div>

       

      @page "/hello2"
      @using Microsoft.AspNetCore.Components
      @using Microsoft.AspNetCore.Components.Rendering 
      
      @HelloContent2 
      
      @code{
          protected RenderFragment HelloContent2=(RenderTreeBuilder builder)=>{
              builder.OpenElement(0,"div");
              builder.AddContent(1, "hello world");
              builder.CloseElement();
          };
      }

       

      ========================================

      Inline RenderFragment 寫法

      ========================================

      普通的RenderFragment 寫法繁瑣, Blazor 其實(shí)還支持 inline 寫法, 即在 C# 代碼塊中直接寫html.

      Inline 寫法的要求是委托形參名必需是 __builder , 前面兩個(gè)下劃線,  否則編譯會(huì)報(bào)錯(cuò).

      @page "/hello3"
      @using Microsoft.AspNetCore.Components
      @using Microsoft.AspNetCore.Components.Rendering 
      
      @HelloContent3 
      
      @code{
          protected RenderFragment HelloContent3=(RenderTreeBuilder __builder)=>{
             <div>
                  hello world
              </div>
          };
      }

       

      ========================================

      支持泛型的 RenderFragment 寫法

      =======================================

      @page "/hello4"
      @using Microsoft.AspNetCore.Components
      @using Microsoft.AspNetCore.Components.Rendering 
      
      @HelloContent4("world")
      
      @code{
          protected RenderFragment<string> HelloContent4 =(message)=> (RenderTreeBuilder builder)=>{
              builder.OpenElement(0,"div");
              builder.AddContent(1, "hello "+message);
              builder.CloseElement();
          };
      }

       

      ========================================

      參考

      ========================================

      https://shauncurtis.github.io/articles/Blazor-Components.html

      posted @ 2021-10-05 14:59  harrychinese  閱讀(2140)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 福利一区二区在线观看| 中文字幕亚洲男人的天堂| 晴隆县| 国产成人综合亚洲精品国产| 国产成人啪精品视频免费网| 一本精品99久久精品77| 国产综合视频一区二区三区| 国产亚洲欧美另类一区二区| 国产男女黄视频在线观看| 台湾佬自拍偷区亚洲综合| 九九热在线免费观看视频| 一面膜上边一面膜下边视频| 国产精品亚洲综合久久小说| 无码精品人妻一区二区三区湄公河| 视频一区二区三区四区五区| 国产高清自产拍av在线| 国产永久免费高清在线| 国产亚洲精品岁国产精品| 精品国产美女福到在线不卡| 久久99精品久久久久久青青| 国产成人av乱码在线观看| 成人精品色一区二区三区| 亚洲AV成人片不卡无码| 老少配老妇老熟女中文普通话| 国产精品 亚洲一区二区三区| 国产成人无码AV片在线观看不卡| 亚洲码欧洲码一二三四五| 精品国产精品午夜福利| 国产成人a在线观看视频免费| 丰满人妻被黑人猛烈进入| 午夜无码国产18禁| 亚洲狠狠婷婷综合久久久| 国产又黄又硬又粗| 精品偷拍一区二区三区| 日韩欧美aⅴ综合网站发布| 亚洲精品天天影视综合网 | 永久免费无码成人网站| 亚洲av免费成人精品区| 亚洲一区二区三区丝袜| 久久99热成人精品国产| 国产片AV国语在线观看手机版|