一文教你在现有Vue项目中嵌入Blazor项目

 更新时间:2023年01月21日 08:55:09   作者:tokengo  
目前官方只提供了angular和react俩种示例,所以本教程将来讲解如何在Vue的现有项目中嵌入使用Blazor项目。文中的方法讲解详细,感兴趣的小伙伴可以了解一下

准备流程

Vue 项目创建流程

1.使用Vue创建一个Demo项目 全部选择默认No即可 然后项目名称就用demo

npm init vue@latest

cd demo
npm i

安装完成依赖,在项目的根目录找到index.html 添加以下代码即可

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/favicon.ico" rel="external nofollow" >
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vite App</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
    <script src="_content/Microsoft.AspNetCore.Components.CustomElements/BlazorCustomElements.js"></script> 
    <script src="_framework/blazor.webassembly.js"></script>
  </body>
</html>

在 src\App.vue中添加以下代码

<script setup lang="ts">
</script>

<template>
  <main>
    <my-blazor-counter/>   <!--对应razor组件的标签 -->
  </main>
</template>

然后将Vue项目构建

npm run build

将生成的 dist目录copy到创建的 Blazorwwwroot

Blazor项目创建流程

使用mkdir创建一个webassembly文件夹 ,cd进入webassembly目录,创建 一个空的blazor-webassembly的项目

mkdir webassembly  
cd webassembly
dotnet new blazorwasm-empty 

Microsoft.AspNetCore.Components.CustomElements添加到项目文件中,Microsoft.AspNetCore.Components.CustomElements就是用于在Vue中使用Blazor的一个包, 需要注意的是这个包只有.Net 6Rc和.Net7正式版才能使用

<PackageReference="Microsoft.AspNetCore.Components.CustomElements" Version="7.0.2" />

然后打开Program.cs 修改相关代码

using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;

var builder = WebAssemblyHostBuilder.CreateDefault(args);
// BlazorApp.Pages.Index可以修改成自己的渲染的razor组件
// my-blazor-counter就是上面提到的razor对应的标记 这样就可以在react通过my-blazor-counter去渲染BlazorApp.Pages.Index组件的内容了
builder.RootComponents.RegisterCustomElement<webassembly.Pages.Index>("my-blazor-counter");
builder.RootComponents.Add<HeadOutlet>("head::after");

await builder.Build().RunAsync();

打开webassembly.Pages.Index 修改相关代码

<h1>@Title</h1>

<p role="status">点击数量: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">点击Blazor组件效果</button>

@code {
    private int currentCount = 0;
    [Parameter] 
    public string Title { get; set; } = "Vue 嵌入 Blazor";
    [Parameter] 
    public int? IncrementAmount { get; set; }

    private void IncrementCount()
    {
        currentCount++;
    }
}
<style>
    button {
        font-weight: bold;
        background-color: #7b31b8;
        color: white;
        border-radius: 4px;
        padding: 4px 12px;
        border: none;
    }

    button:hover {
        background-color: #9654cc;
        cursor: pointer;
    }

    button:active {
        background-color: #b174e4;
    }

</style>

 需要注意将`Vue`项目build生成的文件拷贝并且覆盖到`Blazor`项目中的`wwwroot`中

运行效果

我们进入到Blazor项目中准备执行blazor项目

dotnet watch

然后查看效果,执行效果如下:

运行基本没有什么问题,这样Blazor就不太会太死板,我们就可以某些在于Blazor有优势的情况就可以去嵌入Blazor实现,在Vue中的使用成本极低,只是引用js,然后通过加入对应的标签就可以直接使用,当然你如果想要俩个项目一块调试的话,可能需要在本地搭建nginx 去将俩个项目一块代理到一个端口,这种情况是比当前的拷贝到wwwroot目录的效果更好的,我现在正在使用这种嵌入的方式在 一个基于react的Ide(opensumi)中嵌入Blazor的组件,实现动态编译代码并且实时的去渲染Blazor组件的效果,这样会很有效提供开发Blazor的效率,也可以在公司现有项目中的Vue 或者react Angular的项目中嵌入Blazor,目前来说嵌入成本很低,而且官方的是支持ServerWebassembly俩种模式的。可以参考实际业务去使用不同模式的,说到这里基本讲解完成了。

到此这篇关于一文教你在现有Vue项目中嵌入Blazor项目的文章就介绍到这了,更多相关Vue嵌入Blazor内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍

    动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍

    这篇文章主要介绍了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,需要的朋友可以参考下
    2015-04-04
  • 详解使用IDEA模拟git命令使用的常见场景

    详解使用IDEA模拟git命令使用的常见场景

    这篇文章主要介绍了详解使用IDEA模拟git命令使用的常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 一文弄懂字符集编码

    一文弄懂字符集编码

    软件开发人员经常遇到中文乱码、软件不能显示中文等类似问题,本文主要介绍了一文弄懂字符集编码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • WebStorm 发布2021.3重大更新新功能介绍

    WebStorm 发布2021.3重大更新新功能介绍

    ​2021年度最后一次重大更新WebStorm 2021.3来了!此更新充满了期待已久的增强功能,包括对远程开发的支持、改进的 HTML 完成、重新设计的 Deno 集成等
    2021-12-12
  • Prometheus配置解析小结

    Prometheus配置解析小结

    本文主要介绍了Prometheus配置解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Atlassian系列产品及插件激活方法[JIRA8.19.0+]

    Atlassian系列产品及插件激活方法[JIRA8.19.0+]

    Atlassian家有很多产品,都真的非常好用。比如公司使用JIRA做项目管理,使用Confluence做文档、知识管理等(我个人用它来做笔记)。本文给大家分享Atlassian系列产品及插件激活方法[JIRA8.19.0+],感兴趣的朋友参考下吧
    2021-12-12
  • 微信小程序配置服务器域名详细图文教程

    微信小程序配置服务器域名详细图文教程

    每个微信小程序都要在上线前配置好服务器域名,不然会显示白屏,需要小程序开发者在小程序后台操作设置,下面这篇文章主要给大家介绍了关于微信小程序配置服务器域名的详细图文教程,需要的朋友可以参考下
    2024-02-02
  • Git常用命令汇总

    Git常用命令汇总

    Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。这篇文章介绍了Git的常用命令,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 如何部署kubernetes-dashboard改成http免密登录

    如何部署kubernetes-dashboard改成http免密登录

    这篇文章主要介绍了如何部署kubernetes-dashboard改成http免密登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • 一文详解软件测试需求分析是什么

    一文详解软件测试需求分析是什么

    需求分析是掌握被测系统的过程,一般测试和开发人员都要进行需求分析,测试方做的需求分析称为测试需求分析,这篇文章主要给大家介绍了关于软件测试需求分析的相关资料,需要的朋友可以参考下
    2007-04-04

最新评论