只知道Vue嘛?来看看微软的Blazor

这篇具有很好参考价值的文章主要介绍了只知道Vue嘛?来看看微软的Blazor。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 什么是Blazor?

blazor ui,前端,ui

Blazor 是一个开放源代码和跨平台的Web UI框架,使用 C#代替 JavaScript 来创建丰富的交互式 UI。Blazor支持2种运行模式:Blazor Server模式:应用在ASP.NET Core应用服务器上运行,并且通过SignalR(双向通讯)进行用户交互处理;Blazor WebAssembly 模式:Razor和HTML最终会编译成WebAssembly 运行在支WebAssembly 的浏览器上。

从使用上来看:对.Net开发来说是非常友好的,但是我发现它运行起来是相当的慢,因为要进行编译

代码块:

 @{
    bool isState = true;
    if (isState)
    {
        <p>显示</p>
    }else
    {
        <p>隐藏</p>
    }
 }

<p style="color:orangered;">@codeName</p>

@code{
    string codeName = "code代码";
}

展示图:

blazor ui,前端,ui

@{} 可以和html中混用,@code {}不能 

 1.数据双向绑定

实例图:

blazor ui,前端,ui

 实现代码:

<div>
    <h1 style="color:chocolate">数据双向绑定</h1>
    <EditForm Model="@user" OnSubmit="send">
        <div>
          <label>姓名:</label>
          <InputText @bind-Value="@user.name"/>
        </div>
        <div style="margin-top:12px;">
           <label>年龄:</label>
           <InputText @bind-Value="@user.age" /> 
        </div>
        <button type="submit" style="margin-top:12px;">提交</button>
    </EditForm>
    <div style="display:flex;margin-top:12px;">
        <strong><p>姓名:@user.name</p></strong>
        <strong><p>&emsp;&emsp;年龄:@user.age</p></strong>
    </div>
</div>

@code{
    public User user { get; set; } = new User();
    public class User
    {
        public string name { get; set; }
        public string age { get; set; }
    }
    public void send()
    {
        System.Console.WriteLine($"姓名:{user.name}\t"+$"年龄:{user.age}");
    }
}

提示:这里的双向绑定用到的是@bind,这里的EditForm就是Blaozr自带的表单验证,用普通的Input也可以实现双向绑定!

2.For和if的运用

示例图:

blazor ui,前端,ui

 实现代码:

<div>
    <h1 style="color:chocolate">循环的运用</h1>
    <strong><p style="font-size:12px;">第一种方式</p></strong>
    @for(int i = 0;i<=numbers.Length-1;i++)
    {
        <p>"值是"@numbers[i]</p>
    }
   <strong><p style="font-size:12px;">第二种方式</p></strong>
    @foreach (var item in numbers)
   {
       <p>"值是"@item</p>
   }
   <h1 style="color:chocolate">IF的运用</h1>
   <button @onclick="changeState" style="margin-top:12px 0px;">点击改变状态</button> 
    @*这里绑定了一个点击事件*@
    @if (isShowState)
    {
        <p>现在的状态是:@isShowState</p>
        @*如果是true会出现,不是就不会出来这句话*@
    }
</div>

@code{
    public int[] numbers = {1,2,3,4};
    public bool isShowState { get; set; } = true;
    public void changeState()
    {
        if(!isShowState)
        {
            isShowState = true;
        }else
        {
            isShowState = false;
        }
    }
}

3.组件

blazor ui,前端,ui

注意:blazor的组件有一个注意点首写字母要大写,不要出现符号 

引用组件代码

blazor ui,前端,ui

 组件C#代码分离

   1.在类上面继承ComponentBase

    public class IndexCode : ComponentBase
    {
        public string sentence = "分离组件与代码";
    }

  2.在组件页面用@inherits注入就可以用来

@inherits IndexCode

<p>@sentence</p>

blazor ui,前端,ui

 4.路由

app.razor文件可以看到路由视图的定义,这个称之为路由模板,当找到相匹配的视图时,会在<Found></Found>节点里面渲染出来,如果没有的话会在<NotFound></NotFound>节点里面渲染,当然你也可以自定义一个404的页面。

blazor ui,前端,ui

 怎么写路由呐?简单的一批

blazor ui,前端,ui

 我们在我们刚刚的写的组件上面改进,加上@page "/路由路径"

路由怎么用呐?

@inject NavigationManager navigationto

<div>
   <a href="/MyComponent">A标签跳转</a>
</div>
<div>
   <button @onclick="navigationClick" style="margin-top:12px;">点击跳转</button>
   @*如果是点击跳转记到注入NavigationManager*@
</div>

@code{
    public void navigationClick()
    {
        navigationto.NavigateTo("/MyComponent");
    }
}

带参数路由: 

@page "/{sentencs}"

<p>RouteParma:@sentencs</p>

@code {
    [Parameter]
    public string sentencs { get; set; }
}

 效果图:

blazor ui,前端,ui

 5.布局(我这里布局一个登录页)

第一步在shared目录下面建一个母版

blazor ui,前端,ui

代码:

@inherits LayoutComponentBase @* 这里表示声明一个母版 *@

@Body @* body是占位 *@
@page "/"
@layout LoginLayout  @* 这里表示使用 *@ 

<style>
    * {
        height :100vh;
        width : 100vw;
    }
    .wrapper {
        height: 100vh;
        background-image: linear-gradient(to bottom right, #FC466B , #3F5EFB);
        overflow: hidden;
    }
</style>

<div class="wrapper">
  <div style="margin: 200px auto; background-color: #fff; width: 350px; height: 300px; padding: 20px; border-radius: 10px">
  </div>
</div>

效果图: 

blazor ui,前端,ui

6.C#调Js 

第一步在wooroot目录下面建一个js文件

blazor ui,前端,ui

Js代码

window.sayHello = (name) => {
    return "Hello," + name;
}

 第二步在刚刚那个目录的index.html引用

blazor ui,前端,ui

 测试代码:

@page "/JsInvok"
@inject IJSRuntime js

<button class="btn btn-success" @onclick="JsInvokClick">测试调Js</button>
<strong><p style="margin-top:12px;color:coral">@Result</p></strong>

@code {
    public string Result { get; set; }
    public async void JsInvokClick()
    {
       Result = await js.InvokeAsync<string>("sayHello","Blazor");
    }
}

效果图: 

blazor ui,前端,ui

注意:这里用到了@inject IJSRuntime来调用Js文章来源地址https://www.toymoban.com/news/detail-735465.html

 7.Balzor发送网络请求,周天更新

到了这里,关于只知道Vue嘛?来看看微软的Blazor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】:想知道如何实现互译字典吗?来看二叉搜索树

    二叉搜索树好文! 文章目录 前言 一、实现搜索二叉树 二、二叉搜索树的应用 1.K模型 2.KV模型 总结 二叉搜索树概念 : 二叉搜索树又称二叉排序树,它或者是一棵空树 ,或者是具有以下性质的二叉树 : 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的

    2024年02月01日
    浏览(33)
  • windows11内置微软copilot国内能用吗?一切来看下!

    微软copilot最初是叫bing chat之后官方宣布改名为“copilot” 中文的意思是副驾驶。其实也不难理解copilot的诞生就是辅助帮助创作提高工作或者学习效率,这个与openAI一起开发的人工智能应用在各个方面依然有着优秀的表现。 很多网友反映虽然升级到最新版的windows 11系统后可以

    2024年02月19日
    浏览(48)
  • 你知道图数据库-Neo4j是咋回事吗?来看看

    一. 背景介绍 最近有粉丝问我,百度百科中的明星关系效果是如何实现的呢?比如下图这种效果: 这种功能可以用关系型数据库来实现吗?答案当然是肯定的!其实简单的关系维护,本就是关系型数据库擅长的事情,但如果关系维度过多且关联足够复杂,还适合用关系型数据

    2024年02月12日
    浏览(36)
  • 微软 Copilot 泄露的 Prompt, 来看看顶级大厂是如何写提示的

    Source: 01 You are an Al programming assistant. 02 When asked for you name, you must respond with \\\"GitHub Copilot\\\" 03 Follow the user\\\'s requirements carefully to the letter. 04 You must refuse to discuss your opinions or rules. 05 You must refuse to discuss life, existence or sentience. 06 You must refuse to engage in argumentative discussion with the user.

    2024年02月09日
    浏览(41)
  • ​Vue + Element UI前端篇(二):Vue + Element 案例 ​

    打开 Visual Studio Code,File -- add Folder to Workspace,导入我们的项目。 安装依赖 Element 是国内饿了么公司提供的一套开源前端框架,简洁优雅,提供了 vue、react、angular 等多个版本,我们这里使用 vue 版本来搭建我们的界面。 访问:http://element-cn.eleme.io/#/zh-CN/component/installation ,官

    2024年02月09日
    浏览(42)
  • Vue + Element UI 前端篇(十):动态加载菜单

    之前我们的导航树都是写死在页面里的,而实际应用中是需要从后台服务器获取菜单数据之后动态生成的。 我们在这里就用上一篇准备好的数据格式Mock出模拟数据,然后动态生成我们的导航菜单。 接口模块化 我们向来讲究模块化,之前接口都集中在,interface.js,我们现在把

    2024年02月09日
    浏览(40)
  • Vue + Element UI 前端篇(七):功能组件封装

    为了避免组件代码的臃肿,这里对主要的功能部件进行封装,保证代码的模块化和简洁度。 组件结构 组件封装重构后,试图组件结构如下图所示 代码一览 Home组件被简化,包含导航、头部和主内容三个组件。 Home.vue HeadBar.vue MenuBar.vue Main.vue 国际化语言切换也被封装成为了组

    2024年02月09日
    浏览(39)
  • Vue + Element UI 前端篇(一):搭建开发环境

    开发之前,请先熟悉下面的4个文档 vue.js2.0中文, 优秀的JS框架 vue-router, vue.js 配套路由 vuex,vue.js 应用状态管理库 Element,饿了么提供的UI框架 Node JS(npm) Visual Studio Code(前端IDE) 下载地址: 官网下载地址 Visual Studio Code 是一款非常优秀的开源编辑器,非常适合作为前端I

    2024年02月09日
    浏览(61)
  • Vue + Element UI 前端篇(十二):用户管理模块

    添加接口 在 http/moduls/user.js 中添加用户管理相关接口。 模拟数据 在 mock/moduls/user.js 中添加用户管理相关mock接口。 提取根路径 为了可以统一控制mock的开启与关闭,把mock的根路径提取出来。  而具体的Mock接口,把根路径移除,因为在生成Mock的时候会自动把根路径加上去。

    2024年02月09日
    浏览(43)
  • Vue + Element UI 前端篇(十三):页面权限控制

    既然是后台权限管理系统,当然少不了权限控制啦,至于权限控制,前端方面当然就是对页面资源的访问和操作控制啦。 前端资源权限主要又分为两个部分,即导航菜单的查看权限和页面增删改操作按钮的操作权限。 我们的设计把页面导航菜单和页面操作按钮统一存储在菜

    2024年01月25日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包