<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
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>
在 srcApp.vue
中新增以下程式碼
<script setup lang="ts"> </script> <template> <main> <my-blazor-counter/> <!--對應razor元件的標籤 --> </main> </template>
然後將Vue
專案構建
npm run build
將生成的 dist
目錄copy到建立的 Blazor
的wwwroot
中
使用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
,目前來說嵌入成本很低,而且官方的是支援Server
和Webassembly
倆種模式的。可以參考實際業務去使用不同模式的,說到這裡基本講解完成了。
到此這篇關於一文教你在現有Vue專案中嵌入Blazor專案的文章就介紹到這了,更多相關Vue嵌入Blazor內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45