这里我们会讲解Blazor的基础语法和简单组件化使用
Blazor 常用语法介绍
路由位置
@page "/fetchdata"
@if (forecasts == null)
{
Loading...
}
else
{
Date
Temp. (C)
Temp. (F)
Summary
}
@for(var i = 0;i< 10; i++)
{
我是text @i
}
@foreach (var forecast in forecasts)
{
@forecast.Date.ToShortDateString()
@forecast.TemperatureC
@forecast.TemperatureF
@forecast.Summary
}
@code {
[Parameter]
public string Title{ get; set; }
[Parameter]
public string Value { get; set; }
}
@code {
public void ShowTest()
{
Console.WriteLine("我被按钮点击了");
}
}
简化控件的属性绑定
<input @attributes="InputList" />
//等价于
@code {
public Dictionary<string, object> InputList { get; set; } = new Dictionary<string, object>()
{
{"title","我的标题"},
{"value","10"}
};
}
参数注入支持多参数
@code {
[Parameter]
public string Title{ get; set; }
[Parameter]
public string Value { get; set; }
[Parameter]
public List<string> TestList { get; set; } = new List<string>();
}
<Test Title="我是测试的标题" Value="数值" TestList="@strList"/>
@code{
public List<string> strList = new List<string>()
{
};
protected override Task OnInitializedAsync()
{
for(var i = 0;i < 10; i++)
{
strList.Add("我是标题" + i);
}
return base.OnInitializedAsync();
}
}
Test.Razor里面
[Parameter]
public EventCallback<string> OnClick{ get; set; }
//string是回调的返回参数
引用组件
<Test OnClick="TestBtn"/>
@code{
//注意,注入的函数的参数和回调的参数要保持一致
public void TestBtn(string msg)
{
Console.WriteLine("我接收到了回调"+msg);
}
}
Test.razor
<button @onclick="ShowTest"/>
@code {
[Parameter]
public EventCallback<string> OnClick{ get; set; }
//通过按钮事件触发回调,这样引用的页面就会触发回调函数
public void ShowTest()
{
OnClick.InvokeAsync("点击回调函数");
}
}
使用@ref 直接控制组件元素
Test是我们定义的组件
//通过@ref直接使用组件
<Test @ref="myTest" OnClick="TestBtn"/>
@code{
//先声明组件
private Test myTest { get; set; }
//通过某种方式调用组件,我这里是用按钮点击
public void TestBtn(string msg)
{
myTest.Title = "我直接操控修改了Title";
myTest.TestBtn();
Console.WriteLine("我接收到了回调"+msg);
}
}
在这个阶段,Blazor应用程序初始化并加载所需要的资源。
在这个阶段,Blazor提供了一些特定的生命周期钩子方法,可以用于执行一些特定的操作。
在这个阶段,Blazor应用程序将完成并进行清理工作。
因为用的是C#而不是JS。所以无法直接使用JS的console.log方法。但是可以使用C#的Console.WriteLine()
打印在运行的控制台里面