今天在微信群讨论了不少Blazor是否能够正经常使用的问题。你们争的面红耳赤的。css
因而趁着无聊,就水了这么一篇文。后端
还记得Blazor还在预览版的时候,我就开始关注Blazor了。浏览器
那会儿调试Blazor还得在浏览器地址栏输入一堆命令,调试都贼不方便。打包出来也是很大,浏览器也很卡顿。服务器
能够从如下几个方面来讲一下为何我认为Blazor能够在小规模的正式环境中使用。以及哪些地方不太适用Blazor微信
可是现在几年过去了。Blazor从一开始的一堆好几M的库,到如今5.0版本框架
Hello World的包大小已经缩减到一百多kb左右了。固然如今依然无法和Vue NG这样的能缩减到50kb如下的框架来比。(这点大小我认为不影响框架加载速度)优化
一个优秀的SPA框架,各方面也要优秀。咱们能够使用Blazor对比一下Vue.js的功能。动画
Vue.js | Blazor | |
---|---|---|
模板 | 支持 | 支持 |
状态管理 | 支持 | 不支持 |
动画组件 | 支持 | 不支持 |
路由组件 | 支持 | 支持 |
组件库数量 | 多 | 少 |
组件库质量 | 高 | 低 |
使用人数 | 多 | 少 |
服务器渲染 | 支持 | 支持 |
插件 | 多 | 少 |
以上对比来本身我我的的主观使用。插件
.NET 5.0让我以为眼前一亮的是提供一个虚拟滚动组件:Virtualize 这个功能Vue.js至今没有官方实现。可是Blazor竟然提供了。这里要给微软点个赞。调试
从Blazor的文档来看,Blazor基本没有对老旧浏览器有一个良好的支持。
若是有须要兼容IE10或者11+版本的需求,不要选择Blazor。不挑选浏览器环境的话,能够选择Blazor。移动端 TO b项目能够选择Blazor。 To c慎重(毕竟to c客户不能要求别人换浏览器)
为何我会有提出这个点呢?由于Blazor的UI组件库质量一言难尽。
Element-blazor处于断更状态。几个月没更新了。
Ant-blazor的官网都随时挂掉。组件也贼卡顿。
惟一感受质量还行的BootStrapBlazor,UI风格有点太老。须要本身调整CSS。(若是对界面要求不高的,能够使用。)
用Blazor的须要什么特殊功能的组件的话(如颜色选择器,Cron选择器),通常找不到合适的第三方。须要本身动手解决写组件的问题。
不少长期作纯后端工做的老铁们都以为写CSS很费劲。实际上并非,大约在去年7月以前,我也是一个CSS小菜鸡。可是去年不知道脑子抽什么风。想用本身弄一套组件库出来。因而重温CSS,闲暇时间也撸了几十个感受还行的组件库(后期会开源,基于Vue.js写的)
若是你正在作一个内部使用的简单后台系统,那彻底没问题。若是你要作一个很复杂且要长期维护的项目,建议等Blazor的进一步优化。
欢迎关注个人公众号 :qingchengcoding
一个以ASP.NET Core+Vue.js的Web开发知识的公众号