新闻中心
Blazor WebAssembly 和 Blazor Server 混合应用怎么做
Blazor混合应用本质是共享代码+分离宿主,需通过Shared类库共用组件与逻辑,WASM与Server项目独立部署并适配差异,不可单项目切换渲染模式。

Blazor WebAssembly 和 Blazor Server 混合应用不是官方直接支持的“单项目双托管模式”,但可以通过合理架构设计,在同一解决方案中**共用组件、业务逻辑和 API 层**,让不同页面或功能模块分别运行在 WASM 或 Server 模式下——本质是“共享代码 + 分离宿主”,而非一个页面同时跑两种模型。
核心思路:共享类库 + 独立宿主项目
不要试图在一个项目里切换渲染模式。正确做法是:
- 创建一个 Shared 类库(.NET Standard 或 .NET 6+),存放所有可复用内容:Razor 组件(.razor)、服务接口与实现(需注意依赖注入差异)、数据模型、工具方法等
- 新建两个独立的 Blazor 项目:Blazor WebAssembly App(带托管后端) 和 Blazor Server App
- 两个宿主项目都引用 Shared 类库,并按各自模型适配:WASM 项目调用 HttpClient 访问 API,Server 项目直接注入服务或调用本地逻辑
组件复用的关键注意事项
不是所有组件都能无修改共用。需主动处理以下差异:
-
JS 互操作:WASM 中
IJSRuntime.InvokeAsync是异步且网络往返的;Server 中是同步调用(IJSRuntime.InvokeVoidAsync也走 SignalR)。建议封装抽象层,如定义IJsHelper接口,在 Shared 中使用,由各宿主项目提供具体实现 -
状态管理与生命周期:Server 模式下组件实例长期存活,WASM 中可能随页面刷新重置。避免在组件内缓存跨请求状态,改用
localStorage(WASM)或CascadingParameter+ 父组件管理(Server) -
认证与授权:WASM 通常用 JWT 存 localStorage,Server 用 Cookie。Shared 中的
[Authorize]可共用,但登录逻辑、Token 获取/刷新必须分开实现
如何让部分路由走 WASM、部分走 Server?
不能靠路由配置自动切换,但可通过以下方式“模拟混合”:
美图AI开放平台
美图推出的AI人脸图像处理平台
111
查看详情
-
反向代理方案(推荐):用 Nginx / YARP / ASP.NET Core 的
Proxy中间件,把特定路径(如/admin/*)转发到 Blazor Server 应用,其余走 WASM 托管的后端。用户感知为同一域名下的不同区域 -
超链接跳转:在 WASM 页面中用
<a href="https://yoursite.com/admin">后台管理</a>直接跳转到 Server 应用地址(可同域部署降低跨源问题) - IFrame 嵌入(慎用):仅适合隔离强、交互少的模块(如报表页),不推荐用于主流程,因失去路由集成、状态共享和 SEO 友好性
调试与部署要点
两个项目独立发布,但需协调好基础配置:
- API 基地址统一:WASM 项目中
HttpClient.BaseAddress设为后端 API 地址;Server 项目若也调用外部 API,同样配置一致的客户端 - 身份验证票据兼容:如果共用 IdentityServer 或 JWT,确保签发方、密钥、有效期等配置完全一致
- 静态资源路径注意:WASM 需要
wwwroot/_cont加载组件包,Server 则走
ent/{PackageId}/_content中间件自动映射,Shared 类库需标记为StaticWebAssetBasePath(在 .csproj 中加<staticwebassetbasepath>_content/Your.Shared</staticwebassetbasepath>)
基本上就这些。混合不是为了炫技,而是按场景选型:WASM 适合离线、高并发、低敏感前端;Server 适合实时协作、复杂服务器计算、强会话控制。共享代码能大幅降低维护成本,关键在提前划清边界、封装差异。
以上就是Blazor WebAssembly 和 Blazor Server 混合应用怎么做的详细内容,更多请关注其它相关文章!
# 前端
# nginx
# js
# 复用
# 睢宁网站推广优势
# 离线
# 序列化
# 如何在
# 宁都百度seo优化
# 推广营销思维
# 小红书营销推广小技巧
# 英山网站建设多少钱
# 学校网站建设栏目设置
# 私信推广图片素材库网站
# 黄冈市网站线上推广服务
# 别墅整合营销推广
# 网络seo分金手指六六二九
# 操作指南
# 如何将
# 怎么做
# 类库
# 美图
# red
# .net
# 路由
# proxy
# 后端
# 工具
# app
# seo
# cad
# cookie
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
yandex入口引擎手机版 yandex安卓版下载入口
PHP URL参数传递与500错误调试指南
如何在 Excel Online 和 Google 表格中更改日期格式
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等
如何将一个大型PHP应用拆分为多个Composer包_微服务与模块化架构的Composer实践
HTML元素状态管理:根据DIV内容动态启用/禁用按钮
PDF文件体积过大处理_PDF压缩技巧详解
QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网
抖音商城签到领现金是真的吗_抖音商城签到奖励与提现说明
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
12306选座如何查看座位示意图_12306座位示意图解读与使用
离线运行Go语言之旅:本地部署与GOPATH配置指南
poki网页游戏推荐_poki免费游戏平台入口
J*aScript打印功能_j*ascript输出控制
使用 Pandas 高效处理 .dat 文件:字符清理与数据计算
圆通快递查询实时追踪 圆通物流包裹状态快速查看
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
实现全屏滚动与导航点:专业教程
C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责
J*aScript DOM操作:高效清空列表元素的策略与实践
支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样
拼多多赚钱渠道_拼多多收益来源
4399免费游戏网址入口 4399小游戏免费入口点开即玩
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议
响应式图片在网页设计中的正确实现方法
深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现
Win10系统服务哪些可以禁用 Win10安全优化服务列表【干货】
Pyrogram与g4f集成:异步编程实践与常见错误解决
Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别
12306怎么选座位选到安静区_12306选座安静区域选择策略
2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南
必由学官网入口 必由学教师登录入口
Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式
Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法
vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
字由网在线版登录地址 字由网网页版安全入口
Win11怎么查看电脑配置_Win11硬件配置检测工具使用
Go语言JSON解析深度指南:动态访问与结构体映射实践
Lar*el 8 多关键词数据库搜索优化实践
EMS快递官网app_中国邮政速递物流手机客户端
微信聊天记录怎么加密_微信聊天记录加密方法
妖精动漫免费平台 妖精动漫官网资源观看网址
AO3官网镜像链接 Archive of Our Own同人文在线浏览
处理Kafka消费者会话超时:深入理解消息处理语义与幂等性
快手赚钱渠道_快手收益来源


2025-12-14
浏览次数:次
返回列表
ent/{PackageId}/