BlazorBindings.Maui - 미리 보기 9

구성 요소 생성기, 그림자 및 기타 개선 사항을 추가하는 또 다른 업데이트BlazorBindings.Maui. Get Started 페이지에서 확인해보세요!

이 프로젝트에 대해



This project은 XAML 대신 기본 컨트롤에 Blazor 구문을 사용할 수 있도록 허용하는 Microsoft의 실험 프로젝트인 MobileBlazorBindings의 포크입니다. 다음은 버튼을 누를 때마다 값이 증가하는 Blazor 개발자에게 친숙해 보일 수 있는 기본 UI를 렌더링하는 sampleCountercomponent입니다.

<StackLayout>
    <Label FontSize="30">You pressed @count times </Label>
    <Button Text="+1" OnClick="@HandleClick" />
</StackLayout>

@code {
    int count;

    void HandleClick()
    {
        count++;
    }
}




이전 릴리스 노트


  • Preview 6
  • Preview 7
  • Preview 8

  • 구성요소 생성기



    이 릴리스에는 타사 컨트롤에 대한 Blazor 구성 요소를 생성하는 기능이 추가되었습니다. 원래는 source generator 로 구현할 계획이었지만 안타깝게도 소스 생성기가 면도기 파일과 잘 작동하지 않습니다. 따라서 생성기는 dotnet 도구로 압축됩니다. 컨트롤에 대한 Blazor 구성 요소를 생성하려면 컨트롤 정보가 포함된 어셈블리 특성을 추가해야 합니다.

    [assembly: GenerateComponent(typeof(CommunityToolkit.Maui.Views.AvatarView))]
    


    그런 다음 프로젝트 폴더에 생성기 도구를 설치하고 실행해야 합니다.

    dotnet tool install --global BlazorBindings.Maui.ComponentGenerator --version 0.9.2-preview
    
    dotnet generate-maui-blazor-components
    

    AlohaKitCommunityToolkit 라이브러리에 대해 생성된 구성 요소가 있는 a sample project을 살펴봅니다.

    지금까지는 일부 매개변수 유형(예: 모양 또는 템플릿)을 지원하지 않는다는 점에 유의하십시오.

    그림자



    이제 Blazor 구성 요소에서 그림자가 지원됩니다.

    <Image Source=@("dotnet_bot.png")
           WidthRequest="250"
           HeightRequest="310">
        <Shadow>
            <Shadow Color="Colors.Black"
                    Offset="new (20, 20)"
                    Radius="50"
                    Opacity="0.8f" />
        </Shadow>
    </Image>
    




    제스처 이벤트



    예를 들어 일부 임의 제어를 위한 탭 이벤트 핸들러를 추가하려면 Maui Gesture Recognizers를 사용합니다. 그리고 그것은 Maui Blazor Bindings에서도 이미 가능합니다. 그러나 구문이 매우 장황하므로 이 릴리스에서는 가장 많이 사용되는 제스처에 대한 이벤트를 구성 요소에 직접 추가합니다(아래에서 여전히 제스처 인식기로 구현됨).

    <Frame OnTap="OnTap"
           OnDoubleTap="OnDoubleTap"
           OnPanUpdate="OnPanUpdate">
    
        <Label>@Item - @status</Label>
    </Frame>
    
    @code {
        [Parameter] public int Item { get; set; }
    
        string status = "Pending";
    
        void OnTap() => status = "Tapped";
        void OnDoubleTap() => status = "Double Tapped";
    
        async Task OnPanUpdate(PanUpdatedEventArgs args)
        {
            // ...
        }
    }
    




    브레이킹 체인지



    중요한 내부 변경



    Preview 9에서는 요소 래퍼 구현을 단순화하고 성능을 개선하기 위해 크게 변경했습니다. Blazor 구성 요소 API는 변경되지 않았으므로 대부분의 사용자에게 영향을 미치지 않습니다. 그러나 사용자 지정 바인딩(예: 타사 컨트롤 래핑)을 만든 경우 Preview 9에서 작동하지 않을 수 있습니다. 구성 요소 생성기 덕분에 큰 문제가 되지 않기를 바랍니다.

    TimePicker / DatePicker 업데이트


    TimePickerTimeOnly 대신 최근에 추가된 TimeSpan 유형을 사용하도록 업데이트되었습니다. 이 유형은 시간을 나타내는 데 훨씬 더 적합합니다. 마찬가지로 DatePickerDateOnly 대신 DateTime를 사용하도록 업데이트되었습니다.

    다음은?


  • 추가 ComponentGenerator 개선 사항( #45 ).
  • 내비게이션 서비스 개편( #44 ).

  • 제안이나 아이디어가 있으시면 logissues를 환영합니다!

    좋은 웹페이지 즐겨찾기