Blazor - تنفيذ دوال JavaScript من Blazor
🔹 Blazor - تنفيذ دوال JavaScript من Blazor
في هذا الدرس، سنتعلم كيفية تنفيذ دوال JavaScript من داخل كود Blazor C# باستخدام IJSRuntime
.
سنتناول حالات عملية، مثل تمرير المعاملات واستقبال القيم، وتنظيم الاستدعاءات في ملفات مستقلة.
🧱 الصيغة العامة لاستدعاء JavaScript
await JS.InvokeVoidAsync("اسم_الدالة", المعاملات);
- InvokeVoidAsync: تُستخدم عندما لا تُرجع الدالة قيمة.
- InvokeAsync<T>: تُستخدم عندما تُرجع الدالة قيمة من نوع T.
🛠️ مثال عملي - تنفيذ دالة JavaScript
✅ 1. أنشئ ملف JavaScript:
// wwwroot/scripts/myinterop.js
function showAlert(message) {
alert("📢 " + message);
}
function addNumbers(a, b) {
return a + b;
}
✅ 2. أضف الملف إلى _Host.cshtml أو index.html:
<script src="scripts/myinterop.js"></script>
✅ 3. استدعِ الدوال من Blazor:
@inject IJSRuntime JS
<button class="btn btn-info" @onclick="Show">عرض رسالة</button>
<button class="btn btn-success ms-2" @onclick="Add">جمع 5 + 3</button>
@code {
async Task Show()
{
await JS.InvokeVoidAsync("showAlert", "مرحبًا من Blazor 🎉");
}
async Task Add()
{
int result = await JS.InvokeAsync<int>("addNumbers", 5, 3);
Console.WriteLine("النتيجة: " + result);
}
}
---
🔄 تمرير كائنات JSON إلى JavaScript
var person = new { name = "Mahmoud", age = 30 };
await JS.InvokeVoidAsync("console.log", person);
---
📦 تنظيم الكود باستخدام ملفات JavaScript
لأفضل تنظيم، ضع كل دوال JS الخاصة بك في مجلد مثل /scripts
،
وسمِّ الدوال بأسماء واضحة مثل interop.showToast
أو interop.scrollToTop
.
يمكنك حتى إنشاء كائن JavaScript خاص بك:
// wwwroot/scripts/interop.js
window.myInterop = {
showToast: function (msg) {
console.log("🔔 " + msg);
}
};
واستدعاؤه من Blazor:
await JS.InvokeVoidAsync("myInterop.showToast", "تم بنجاح ✅");
---
💡 ملاحظات مهمة
- تأكد من تحميل ملفات JavaScript قبل استخدامها.
- استخدم أسماء واضحة لدوال JS لتفادي التعارضات.
- للمشاريع الكبيرة، استخدم مكتبات JavaScript جاهزة (مثل toastr أو sweetalert).
✅ خلاصة الدرس
يمكنك استدعاء أي دالة JavaScript من داخل كود Blazor باستخدام IJSRuntime
بسهولة.
يمكنك تمرير معاملات واستقبال قيم، أو حتى التعامل مع كائنات كاملة.
تعليقات
إرسال تعليق