一文教你在現(xiàn)有Vue項目中嵌入Blazor項目
準(zhǔn)備流程
Vue 項目創(chuàng)建流程
1.使用Vue
創(chuàng)建一個Demo項目 全部選擇默認(rèn)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/> <!--對應(yīng)razor組件的標(biāo)簽 --> </main> </template>
然后將Vue
項目構(gòu)建
npm run build
將生成的 dist
目錄copy到創(chuàng)建的 Blazor
的wwwroot
中
Blazor項目創(chuàng)建流程
使用mkdir
創(chuàng)建一個webassembly
文件夾 ,cd
進(jìn)入webassembly
目錄,創(chuàng)建 一個空的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
修改相關(guān)代碼
using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; var builder = WebAssemblyHostBuilder.CreateDefault(args); // BlazorApp.Pages.Index可以修改成自己的渲染的razor組件 // my-blazor-counter就是上面提到的razor對應(yīng)的標(biāo)記 這樣就可以在react通過my-blazor-counter去渲染BlazorApp.Pages.Index組件的內(nèi)容了 builder.RootComponents.RegisterCustomElement<webassembly.Pages.Index>("my-blazor-counter"); builder.RootComponents.Add<HeadOutlet>("head::after"); await builder.Build().RunAsync();
打開webassembly.Pages.Index
修改相關(guān)代碼
<h1>@Title</h1> <p role="status">點(diǎn)擊數(shù)量: @currentCount</p> <button class="btn btn-primary" @onclick="IncrementCount">點(diǎn)擊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`中
運(yùn)行效果
我們進(jìn)入到Blazor項目中準(zhǔn)備執(zhí)行blazor項目
dotnet watch
然后查看效果,執(zhí)行效果如下:
運(yùn)行基本沒有什么問題,這樣Blazor
就不太會太死板,我們就可以某些在于Blazor
有優(yōu)勢的情況就可以去嵌入Blazor
實現(xiàn),在Vue
中的使用成本極低,只是引用js
,然后通過加入對應(yīng)的標(biāo)簽就可以直接使用,當(dāng)然你如果想要倆個項目一塊調(diào)試的話,可能需要在本地搭建nginx
去將倆個項目一塊代理到一個端口,這種情況是比當(dāng)前的拷貝到wwwroot
目錄的效果更好的,我現(xiàn)在正在使用這種嵌入的方式在 一個基于react的Ide
(opensumi)中嵌入Blazor
的組件,實現(xiàn)動態(tài)編譯代碼并且實時的去渲染Blazor
組件的效果,這樣會很有效提供開發(fā)Blazor
的效率,也可以在公司現(xiàn)有項目中的Vue
或者react
和Angular
的項目中嵌入Blazor
,目前來說嵌入成本很低,而且官方的是支持Server
和Webassembly
倆種模式的??梢詤⒖紝嶋H業(yè)務(wù)去使用不同模式的,說到這里基本講解完成了。
到此這篇關(guān)于一文教你在現(xiàn)有Vue項目中嵌入Blazor項目的文章就介紹到這了,更多相關(guān)Vue嵌入Blazor內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
動態(tài)語言、動態(tài)類型語言、靜態(tài)類型語言、強(qiáng)類型語言、弱類型語言介紹
這篇文章主要介紹了動態(tài)語言、動態(tài)類型語言、靜態(tài)類型語言、強(qiáng)類型語言、弱類型語言介紹,需要的朋友可以參考下2015-04-04WebStorm?發(fā)布2021.3重大更新新功能介紹
?2021年度最后一次重大更新WebStorm?2021.3來了!此更新充滿了期待已久的增強(qiáng)功能,包括對遠(yuǎn)程開發(fā)的支持、改進(jìn)的?HTML?完成、重新設(shè)計的?Deno?集成等2021-12-12Atlassian系列產(chǎn)品及插件激活方法[JIRA8.19.0+]
Atlassian家有很多產(chǎn)品,都真的非常好用。比如公司使用JIRA做項目管理,使用Confluence做文檔、知識管理等(我個人用它來做筆記)。本文給大家分享Atlassian系列產(chǎn)品及插件激活方法[JIRA8.19.0+],感興趣的朋友參考下吧2021-12-12如何部署kubernetes-dashboard改成http免密登錄
這篇文章主要介紹了如何部署kubernetes-dashboard改成http免密登錄,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03