Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 9 sürümüne bakın.
Bileşenler, projeler arasında bir Razor sınıf kitaplığında (RCL) paylaşılabilir. Bir uygulamadaki bileşenleri ve statik varlıkları şu kaynaklardan dahil edin:
- Çözümdeki başka bir proje.
- Başvurulan bir .NET kitaplığı.
- NuGet paketi.
Bileşenler normal .NET türleri olduğu gibi RCL tarafından sağlanan bileşenler de normal .NET derlemeleridir.
RCL oluşturma
- Yeni bir proje oluşturma.
- Yeni proje oluştur iletişim kutusunda, ASP.NET Core proje şablonları listesinden RazorSınıf Kitaplığı'nı seçin. İleri'yi seçin.
-
Yeni projenizi yapılandırın iletişim kutusunda Proje adı alanına bir proje adı girin. Bu konudaki örneklerde proje adı
ComponentLibrary
kullanılır. İleri'yi seçin. - Ek bilgiler iletişim kutusunda Destek sayfaları ve görünümleri'ni seçmeyin. Oluştur'u belirleyin.
- RCL'yi bir çözüme ekleyin:
- Çözümü açma.
- Çözüm Gezgini'nde çözüme sağ tıklayın. Ekle>Var Olan Projeyiseçin.
- RCL'nin proje dosyasına gidin.
- RCL'nin proje dosyasını (
.csproj
) seçin.
- Uygulamadan RCL'ye referans ekleyin
- Uygulama projesine sağ tıklayın. Ekle>Proje Referansı'nı seçin.
- RCL projesini seçin. Tamam'ı seçin.
Razor bileşeni bir RCL'den tüket
RCL bileşenlerini başka bir projede kullanmak için aşağıdaki yaklaşımlardan birini kullanın:
- RCL'nin ad alanını içeren tam bileşen türü adını kullanın.
-
Razor yönergesinin
@using
, RCL'nin ad alanını bildirmesi halinde, tek tek bileşenler adlarına göre, RCL'nin ad alanı olmadan eklenebilir. Aşağıdaki yaklaşımları kullanın:-
@using
yönergesini tek tek bileşenlere ekleyin. - Kitaplığın bileşenlerini projenin tamamında kullanılabilir hale getirmek için üst düzey
@using
dosyasına_Imports.razor
yönergesini ekleyin. Belirli bir_Imports.razor
dosyasına, klasör içindeki tek bir bileşen veya bileşen kümesi için alan adını uygulamak üzere herhangi bir düzeyde kendi yönergesini ekleyin. Bir_Imports.razor
dosya kullanıldığında, tek tek bileşenler RCL'nin ad alanı için bir@using
yönerge gerektirmez.
-
Aşağıdaki örneklerde, ComponentLibrary
bileşeni içeren bir RCL'dir Component1
. Bileşen Component1
, sayfaları ve görünümleri desteklemek için oluşturulmamış RCL proje şablonundan oluşturulan bir RCL'ye otomatik olarak eklenen örnek bir bileşendir.
Component1.razor
RCL'de ComponentLibrary
:
<div class="my-component">
This component is defined in the <strong>ComponentLibrary</strong> package.
</div>
RCL kullanan uygulamada, Component1
bileşenine, aşağıdaki örnekte gösterildiği gibi, ad alanını kullanarak referans verin.
ConsumeComponent1.razor
:
@page "/consume-component-1"
<h1>Consume component (full namespace example)</h1>
<ComponentLibrary.Component1 />
Alternatif olarak, bir @using
yönerge ekleyin ve bileşeni ad alanı olmadan kullanın. Aşağıdaki @using
yönerge, geçerli klasörün içindeki veya üzerindeki herhangi bir _Imports.razor
dosyada da görünebilir.
ConsumeComponent2.razor
:
@page "/consume-component-2"
@using ComponentLibrary
<h1>Consume component (<code>@@using</code> example)</h1>
<Component1 />
CSS yalıtımı kullanan kitaplık bileşenleri için, bileşen stilleri otomatik olarak tüketen uygulamanın kullanımına sunulur. Kitaplığı kullanan uygulamada kitaplığın tek bileşen stil sayfalarını veya paketlenmiş CSS dosyasını el ile bağlamanız veya içeri aktarmanız gerekmez. Uygulama, RCL'nin paketlenmiş stillerine başvurmak için CSS importlarını kullanır. Paketlenmiş stiller, kitaplığı kullanan uygulamanın bir statik web dosyası olarak yayımlanmaz.
ClassLib
adlı sınıf kitaplığına ve Blazor uygulamasına dahil olan BlazorSample.styles.css
stil sayfası için, RCL'nin stil sayfası derleme sırasında otomatik olarak uygulamanın stil sayfasının en üstüne aktarılır.
@import '_content/ClassLib/ClassLib.bundle.scp.css';
Yukarıdaki örneklerde, Component1
'nin stil sayfası (Component1.razor.css
) otomatik olarak paketlenmiştir.
Component1.razor.css
RCL'de ComponentLibrary
:
.my-component {
border: 2px dashed red;
padding: 1em;
margin: 1em 0;
background-image: url('background.png');
}
Arka plan görüntüsü RCL proje şablonundan da eklenir ve RCL klasöründe bulunur wwwroot
.
wwwroot/background.png
RCL'de ComponentLibrary
:
Kitaplığın wwwroot
klasöründeki stil sayfalarından ek kitaplık bileşeni stilleri sağlamak için, aşağıdaki örnekte gösterildiği gibi RCL'nin kullanıcısına stil sayfası <link>
etiketleri ekleyin.
Önemli
Kitaplık bileşenleri genellikle bileşen stillerini paketlemek ve sağlamak için CSS yalıtımı kullanır. CSS yalıtımını kullanan bileşen stilleri, RCL kullanan uygulamanın kullanımına otomatik olarak sunulur. Kitaplığı kullanan uygulamada kitaplığın tek bileşen stil sayfalarını veya paketlenmiş CSS dosyasını el ile bağlamanız veya içeri aktarmanız gerekmez. Aşağıdaki örnek, CSS yalıtımı dışında genel stil sayfaları sağlamaya yöneliktir. Bu, genellikle RCL kullanan tipik uygulamalar için bir gereksinim değildir.
Sonraki örnekte aşağıdaki arka plan görüntüsü kullanılmıştır. Bu bölümde gösterilen örneği uygularsanız, yerel olarak kaydetmek için resme sağ tıklayın.
wwwroot/extra-background.png
ComponentLibrary
RCL'de:
RCL'ye extra-style
sınıfına sahip yeni bir stil sayfası ekleyin.
wwwroot/additionalStyles.css
RCL'de ComponentLibrary
:
.extra-style {
border: 2px dashed blue;
padding: 1em;
margin: 1em 0;
background-image: url('extra-background.png');
}
RCL'ye sınıfını extra-style
kullanan bir bileşen ekleyin.
ExtraStyles.razor
RCL'de ComponentLibrary
:
<div class="extra-style">
<p>
This component is defined in the <strong>ComponentLibrary</strong> package.
</p>
</div>
Uygulamaya RCL'den bileşeni kullanan ExtraStyles
bir sayfa ekleyin.
ConsumeComponent3.razor
:
@page "/consume-component-3"
@using ComponentLibrary
<h1>Consume component (<code>additionalStyles.css</code> example)</h1>
<ExtraStyles />
Uygulamanın <head>
işaretlemesinde kitaplığın stil dosyasına bağlantı (içeriğin <head>
konumu):
Blazor Web Apps:
<link href="@Assets["_content/ComponentLibrary/additionalStyles.css"]" rel="stylesheet">
Tek başına Blazor WebAssembly uygulamaları:
<link href="_content/ComponentLibrary/additionalStyles.css" rel="stylesheet">
<link href="_content/ComponentLibrary/additionalStyles.css" rel="stylesheet">
CSS yalıtımı kullanan kitaplık bileşenleri için, bileşen stilleri otomatik olarak tüketen uygulamanın kullanımına sunulur. Kitaplığı kullanan uygulamada kitaplığın tek bileşen stil sayfalarını veya paketlenmiş CSS dosyasını el ile bağlamanız veya içeri aktarmanız gerekmez. Uygulama, RCL'nin paketlenmiş stillerine başvurmak için CSS importlarını kullanır. Paketlenmiş stiller, kitaplığı kullanan uygulamanın bir statik web dosyası olarak yayımlanmaz.
ClassLib
adlı sınıf kitaplığına ve Blazor uygulamasına dahil olan BlazorSample.styles.css
stil sayfası için, RCL'nin stil sayfası derleme sırasında otomatik olarak uygulamanın stil sayfasının en üstüne aktarılır.
@import '_content/ClassLib/ClassLib.bundle.scp.css';
Yukarıdaki örneklerde, Component1
'nin stil sayfası (Component1.razor.css
) otomatik olarak paketlenmiştir.
Component1.razor.css
RCL'de ComponentLibrary
:
.my-component {
border: 2px dashed red;
padding: 1em;
margin: 1em 0;
background-image: url('background.png');
}
Arka plan görüntüsü RCL proje şablonundan da eklenir ve RCL klasöründe bulunur wwwroot
.
wwwroot/background.png
RCL'de ComponentLibrary
:
Aşağıdaki arka plan resmi ve stil sayfası, RCL'nin Component1
örnek bileşeni tarafından kullanılır. Bu statik varlıkları, proje şablonu tarafından otomatik olarak eklendiğinden, RCL proje şablonundan oluşturulan yeni bir RCL'ye eklemeniz gerekmez.
wwwroot/background.png
RCL'de ComponentLibrary
:
wwwroot/styles.css
RCL'de ComponentLibrary
:
.my-component {
border: 2px dashed red;
padding: 1em;
margin: 1em 0;
background-image: url('background.png');
}
Component1
'nin my-component
CSS sınıfını sağlamak için, kitaplığın stil sayfasını uygulamanın <head>
işaretlemesine bağlayın (<head>
içeriğin konumu):
<link href="_content/ComponentLibrary/styles.css" rel="stylesheet" />
Yönlendirilebilir bileşenleri RCL'den kullanılabilir hale getirme
RCL'deki yönlendirilebilir bileşenleri doğrudan istekler için kullanılabilir hale getirmek için RCL'nin derlemesinin uygulamanın yönlendiricisine açıklanması gerekir.
Uygulamanın App
bileşenini (App.razor
) açın. RCL'nin derlemesini dahil etmek için Assembly bileşeninin AdditionalAssemblies parametresine bir Router koleksiyon atayın. Aşağıdaki örnekte, ComponentLibrary.Component1
bileşen RCL'nin derlemesini bulmak için kullanılır.
AdditionalAssemblies="new[] { typeof(ComponentLibrary.Component1).Assembly }"
Daha fazla bilgi için bkz . ASP.NET Temel Blazor yönlendirme ve gezinti.
wwwroot
klasöründe statik varlıklarla bir RCL oluştur
RCL'nin statik varlıkları, kitaplığı kullanan tüm uygulamalar tarafından kullanılabilir.
Statik varlıkları wwwroot
RCL klasörüne yerleştirin ve uygulamada aşağıdaki yola sahip statik varlıklara başvurun: _content/{PACKAGE ID}/{PATH AND FILE NAME}
.
{PACKAGE ID}
yer tutucusu, kitaplığın paket kimliğidir. Proje dosyasında <PackageId>
belirtilmediyse varsayılan olarak projenin derleme adı paket kimliği olur. Yer tutucu {PATH AND FILE NAME}
, wwwroot
altındaki yol ve dosya adıdır. Bu yol biçimi, RCL'ye eklenen NuGet paketleri tarafından sağlanan statik varlıklar için uygulamada da kullanılır.
Aşağıdaki örnek, RCL statik varlıklarının RCL adlı ComponentLibrary
bir RCL ve RCL kullanan bir Blazor uygulama ile kullanımını gösterir. Uygulamanın ComponentLibrary
RCL için bir proje referansı vardır.
Bu bölümün örneğinde aşağıdaki Jeep® görüntüsü kullanılmıştır. Bu bölümde gösterilen örneği uygularsanız, yerel olarak kaydetmek için resme sağ tıklayın.
wwwroot/jeep-yj.png
RCL'de ComponentLibrary
:
Aşağıdaki JeepYJ
bileşeni RCL'ye ekleyin.
JeepYJ.razor
RCL'de ComponentLibrary
:
<h3>ComponentLibrary.JeepYJ</h3>
<p>
<img alt="Jeep YJ®" src="_content/ComponentLibrary/jeep-yj.png" />
</p>
RCL kullanan Jeep
uygulamaya aşağıdaki ComponentLibrary
bileşeni ekleyin. Bileşen Jeep
aşağıdakileri kullanır:
- RCL'nin
ComponentLibrary
klasöründekiwwwroot
Jeep YJ® görüntüsü. - RCL'deki
JeepYJ
bileşeni.
Jeep.razor
:
@page "/jeep"
@using ComponentLibrary
<div style="float:left;margin-right:10px">
<h3>Direct use</h3>
<p>
<img alt="Jeep YJ®" src="_content/ComponentLibrary/jeep-yj.png" />
</p>
</div>
<JeepYJ />
<p>
<em>Jeep</em> and <em>Jeep YJ</em> are registered trademarks of
<a href="https://www.stellantis.com">FCA US LLC (Stellantis NV)</a>.
</p>
İşlenen Jeep
bileşen:
Daha fazla bilgi için ASP.NET Core ile sınıf kitaplıklarında yeniden kullanılabilir kullanıcı arabirimlerine bakın.
Bileşenlerle birlikte bulunan JavaScript dosyalarıyla RCL oluşturma
Bileşenler için JS JavaScript (Razor) dosyalarının birlikte yerleştirilmesi, bir uygulamadaki betikleri düzenlemenin kullanışlı bir yoludur.
Razor uygulamaların bileşenleri Blazor uzantısını kullanarak JS dosyaları bir araya getirir ve projedeki dosyanın yolu ile genel olarak erişilebilir:
{PATH}/{COMPONENT}.razor.js
- "
{PATH}
yer tutucu, bileşene giden yoldur." -
{COMPONENT}
Yer tutucusu bileşendir.
Uygulama yayımlandığında çerçeve betiği otomatik olarak web köküne taşır. Betikler, yer tutucuların bulunduğu konumuna taşınır bin/Release/{TARGET FRAMEWORK MONIKER}/publish/wwwroot/{PATH}/{COMPONENT}.razor.js
:
-
{TARGET FRAMEWORK MONIKER}
Hedef Çerçeve Tanımlayıcısıdır (TFM). -
{PATH}
bileşenin yoludur. -
{COMPONENT}
bileşen adıdır.
Betiğin göreli URL'sinde değişiklik yapılması gerekmez, çünkü Blazor dosyayı sizin için yayımlanmış statik varlıklara yerleştirmekten sorumludur.
Bu bölüm ve aşağıdaki örnekler öncelikle JS dosya yerleşimini açıklamaya odaklanmıştır. İlk örnekte, sıradan bir JS işleviyle birlikte bulunan bir JS dosya gösterilmektedir. İkinci örnekte, çoğu üretim uygulaması için önerilen yaklaşım olan bir işlevi yüklemek için modül kullanımı gösterilmektedir. .NET'ten JS çağırma işlemi, ASP.NET Core'da Blazor .NET yöntemlerinden JavaScript işlevlerini çağırmayı ve Blazor API'sini, ek örneklerle birlikte tam olarak açıklayan JS başlığında ele alınmıştır. İkinci örnekte bulunan bileşen elden çıkarma, ASP.NET Core Razor bileşen elden çıkarmabölümünde ele alınmaktadır.
Aşağıdaki JsCollocation1
bileşen, bir HeadContent
bileşen aracılığıyla bir betik yükler ve JS işlevini IJSRuntime.InvokeAsync ile çağırır. "{PATH}
yer tutucu, bileşene giden yoldur."
Önemli
Test uygulamasında bir gösterim için aşağıdaki kodu kullanırsanız, yer tutucuyu {PATH}
bileşenin yolu olarak değiştirin (örnek: Components/Pages
.NET 8 veya sonraki sürümlerde ya da Pages
.NET 7 veya önceki sürümlerinde). (.NET 8 veya sonraki bir Blazor Web App sürümde) bileşen, uygulamaya veya bileşen tanımına genel olarak uygulanmış etkileşimli bir işleme modu gerektirir.
Blazor betiğinden sonra aşağıdaki betiği ekleyin (Blazor başlangıç betiği konumu):
<script src="{PATH}/JsCollocation1.razor.js"></script>
JsCollocation1
bileşen ({PATH}/JsCollocation1.razor
):
@page "/js-collocation-1"
@inject IJSRuntime JS
<PageTitle>JS Collocation 1</PageTitle>
<h1>JS Collocation Example 1</h1>
<button @onclick="ShowPrompt">Call showPrompt1</button>
@if (!string.IsNullOrEmpty(result))
{
<p>
Hello @result!
</p>
}
@code {
private string? result;
public async Task ShowPrompt()
{
result = await JS.InvokeAsync<string>(
"showPrompt1", "What's your name?");
StateHasChanged();
}
}
Yerleştirilen JS dosyası, JsCollocation1
bileşen dosyasının yanına, JsCollocation1.razor.js
dosya adıyla yerleştirilir. Bileşen JsCollocation1
içindeki betik, birlikte bulunan dosyanın yolundaki konuma referans alınır. Aşağıdaki örnekte, showPrompt1
işlevi, kullanıcı adını Window prompt()
'den alır ve görüntülemek için JsCollocation1
bileşenine geri döndürür.
{PATH}/JsCollocation1.razor.js
:
function showPrompt1(message) {
return prompt(message, 'Type your name here');
}
Önceki yaklaşım, müşteriyi genel işlevlerle kirlettiğinden üretim uygulamalarında genel kullanım için önerilmez. Üretim uygulamaları için daha iyi bir yaklaşım, modülleri kullanmaktır JS . Bir sonraki örnekte gösterildiği gibi, birlikte bulunan JS bir JS dosyadan modül yüklemek için de aynı genel ilkeler geçerlidir.
Aşağıdaki JsCollocation2
bileşenin OnAfterRenderAsync
yöntemi, bileşen sınıfının bir JS olan module
içine bir IJSObjectReference modülü yükler.
module
, showPrompt2
işlevini çağırmak için kullanılır. "{PATH}
yer tutucu, bileşene giden yoldur."
Önemli
Test uygulamasında gösterim amacıyla aşağıdaki kodu kullanırsanız, {PATH}
yer tutucusunu bileşenin yolu ile değiştirin. (.NET 8 veya sonraki bir Blazor Web App sürümde) bileşen, uygulamaya veya bileşen tanımına genel olarak uygulanmış etkileşimli bir işleme modu gerektirir.
JsCollocation2
bileşen ({PATH}/JsCollocation2.razor
):
@page "/js-collocation-2"
@implements IAsyncDisposable
@inject IJSRuntime JS
<PageTitle>JS Collocation 2</PageTitle>
<h1>JS Collocation Example 2</h1>
<button @onclick="ShowPrompt">Call showPrompt2</button>
@if (!string.IsNullOrEmpty(result))
{
<p>
Hello @result!
</p>
}
@code {
private IJSObjectReference? module;
private string? result;
protected async override Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
/*
Change the {PATH} placeholder in the next line to the path of
the collocated JS file in the app. Examples:
./Components/Pages/JsCollocation2.razor.js (.NET 8 or later)
./Pages/JsCollocation2.razor.js (.NET 7 or earlier)
*/
module = await JS.InvokeAsync<IJSObjectReference>("import",
"./{PATH}/JsCollocation2.razor.js");
}
}
public async Task ShowPrompt()
{
if (module is not null)
{
result = await module.InvokeAsync<string>(
"showPrompt2", "What's your name?");
StateHasChanged();
}
}
async ValueTask IAsyncDisposable.DisposeAsync()
{
if (module is not null)
{
try
{
await module.DisposeAsync();
}
catch (JSDisconnectedException)
{
}
}
}
}
Önceki örnekte, JSDisconnectedException'nin Blazor devresi kaybolursa, modülün imhası sırasında SignalR tuzağa düşer. Önceki kod bir Blazor WebAssembly uygulamada kullanılıyorsa, kaybedilecek bir bağlantı yokturSignalR, bu nedenle try
-catch
bloğunu kaldırabilir ve modülü (await module.DisposeAsync();
) atan satırı bırakabilirsiniz. Daha fazla bilgi için bkz. ASP.NET Core Blazor JavaScript birlikte çalışabilirliği (JSBirlikte Çalışma).
{PATH}/JsCollocation2.razor.js
:
export function showPrompt2(message) {
return prompt(message, 'Type your name here');
}
Önemli
<script>
'ten sonra JsCollocation2.razor.js
için Blazor etiketini yerleştirmeyin çünkü modül, import()
çağrıldığında otomatik olarak yüklenir ve önbelleğe alınır.
Sınıf JS kitaplığında (RCL) birlikte bulunan Razor betiklerin ve modüllerin kullanımı yalnızca Blazor arabirimine dayalı JS'nin IJSRuntime birlikte çalışma mekanizması için desteklenir. tr-TR: JavaScript[JSImport]
/[JSExport]
ile çalışma uyguluyorsanız, ASP.NET Core Blazor ile JavaScript JSImport/JSExport birlikte çalışma konusuna bakın.
Razor tabanlı IJSRuntime-birlikte çalışma kullanılarak JS sınıf kitaplığı (RCL) tarafından sağlanan betikler veya modüller için aşağıdaki yol kullanılır:
./_content/{PACKAGE ID}/{PATH}/{COMPONENT}.{EXTENSION}.js
-
./
dosyasının doğru statik varlık yolunu oluşturabilmek için geçerli dizinin yol segmenti (JS) gereklidir. -
{PACKAGE ID}
yer tutucusu RCL'nin paket tanımlayıcısıdır (veya uygulama tarafından başvurulan bir sınıf kitaplığı için kitaplık adıdır). - "
{PATH}
yer tutucu, bileşene giden yoldur." RCL'nin köküne bir Razor bileşeni yerleştirilirse, yol segmenti eklenmez. - "
{COMPONENT}
yer tutucu, bileşenin adıdır." - Yer tutucu
{EXTENSION}
,razor
veyacshtml
bileşeninin uzantısıyla eşleşir.
Aşağıdaki Blazor uygulaması örneğinde:
- RCL'nin paket tanımlayıcısı
AppJS
şeklindedir. -
JsCollocation3
bileşeni (JsCollocation3.razor
) için modülün betikleri yüklenir. -
JsCollocation3
bileşeni, RCL'ninComponents/Pages
klasöründedir.
module = await JS.InvokeAsync<IJSObjectReference>("import",
"./_content/AppJS/Components/Pages/JsCollocation3.razor.js");
Birden çok barındırılan Blazor uygulama için bileşenleri ve statik varlıkları sağlama
Daha fazla bilgi için Birden çok barındırılan ASP.NET Core Blazor WebAssembly uygulaması bölümüne bakın.
İstemci tarafı tarayıcı uyumluluk çözümleyicisi
İstemci tarafı uygulamalar tam .NET API yüzey alanını hedefler, ancak tarayıcı korumalı alanı kısıtlamaları nedeniyle tüm .NET API'leri WebAssembly'de desteklenmez. Desteklenmeyen API'ler WebAssembly'de çalıştırılırken hata verir PlatformNotSupportedException. Bir platform uyumluluk çözümleyicisi, uygulama uygulamanın hedef platformları tarafından desteklenmeyen API'leri kullandığında geliştiriciyi uyarır. İstemci tarafı uygulamalar için bu, API'lerin tarayıcılarda desteklendiğini denetleme anlamına gelir. Uyumluluk çözümleyicisi için .NET framework API'lerine ek açıklama eklemek devam eden bir işlemdir, bu nedenle şu anda tüm .NET framework API'sine açıklama eklenmemiştir.
Blazor Web AppEtkileşimli WebAssembly bileşenlerini, Blazor WebAssembly uygulamalarını ve RCL projelerini otomatik olarak tarayıcı uyumluluk kontrollerini etkinleştirmek için, platformunu browser
MSBuild öğesi ile desteklenen bir platform olarak ekler. Kitaplık geliştiricileri, özelliği etkinleştirmek için öğeyi kitaplığın proje dosyasına el ile ekleyebilir SupportedPlatform
:
<ItemGroup>
<SupportedPlatform Include="browser" />
</ItemGroup>
Kitaplık oluştururken, belirli bir API'nin tarayıcılarda desteklenmediğini belirtmek için browser
ve UnsupportedOSPlatformAttribute arasında belirtin:
using System.Runtime.Versioning;
...
[UnsupportedOSPlatform("browser")]
private static string GetLoggingDirectory()
{
...
}
Daha fazla bilgi için bkz . Belirli platformlarda (dotnet/designs
GitHub deposu) DESTEKLENMEYEN API'lere açıklama ekleme.
JavaScript modüllerinde JavaScript yalıtımı
Blazor standart JavaScript modüllerinde JavaScript yalıtımını etkinleştirir. JavaScript yalıtımı aşağıdaki avantajları sağlar:
- İçeri aktarılan JavaScript artık genel ad alanını kirletmez.
- Kitaplık ve bileşen tüketicilerinin ilgili JavaScript'i manuel olarak içeri aktarması gerekmez.
Daha fazla bilgi için bkz. ASP.NET Core Blazor'da .NET yöntemlerinden JavaScript işlevlerini çağırma.
JavaScript tarafından çağrılabilen .NET yöntemlerini kırpmaktan kaçının
Çalışma zamanı yeniden bağlanma, açıkça korunmadıkları sürece, sınıf örneği JavaScript tarafından çağrılabilen .NET yöntemlerini kaldırır. Daha fazla bilgi için bkz . ASP.NET Core'da BlazorJavaScript işlevlerinden .NET yöntemlerini çağırma.
NuGet oluştur, paketle ve gönder
Bileşenler içeren Razor sınıf kitaplıkları standart .NET kitaplıkları olduğundan Razor, bunları NuGet'e paketlemek ve NuGet'e göndermekten farklı değildir. Paketleme, komut kabuğundaki dotnet pack
komutu kullanılarak gerçekleştirilir:
dotnet pack
Komut kabuğundaki komutunu kullanarak dotnet nuget push
paketi NuGet'e yükleyin.
Ticari Markalar
Jeep ve Jeep YJ , FCA US LLC'nin (Stellantis NV) tescilli ticari markalarıdır.
Ek kaynaklar
ASP.NET Core