为什么混合Razor Pages和VueJs是一件坏事?

我正在尝试使用Razor Pages建立一个.NET核心项目,并为我的所有逻辑将vueJ包含在Razor页面中。

像这样:

@{
    ViewData["Title"] = "VueJs With Razor";
}
<h2>@ViewData["Title"].</h2>

<div id="app">
   <span>{{ message }}</span>
</div>

<script>
     new Vue({
        el: '#app',
        data: {
          message : 'Hello vue.js'
        }
    })
</script>

我已经读过,混合使用Vue和Razor页面是一种不好的做法,应该使用Razor OR Vue。

为什么是这样?

斯丁Near2020/03/12 11:12:39

现在,您还可以在Razor视图中添加VueJS模板:

https://www.npmjs.com/package/razor-vue-lint

Stafan路易2020/03/12 11:12:39

你可以这样做。有时,您必须这样做,如果像我们一样,您正在迁移现有的代码库,而又无法一次转换所有内容。正如罗恩C所说,它运作良好。

如果您要开始一个新项目,则可以选择。支持SPA且没有剃刀的原因将是...

  • 反应性。SPA应用程序通常会感觉(非常)活跃。初始渲染通常在数据到达之前从缓存中提供。第一次加载时,所有资源都以一个请求-响应的形式到达一个包中。没有或几乎没有请求链接。

  • 工作流程。Webpack,捆绑和热重装都很棒。您将获得生产版本,并进行精简,Vue渲染功能的编译,消除404样式错误,捕获js语法错误。对于许多错误,从引入错误到发现错误的周期大大缩短了。

  • SPA宇宙。路由,Vuex,这确实是未来的方式。

  • 纯度。Razor和Vue在一天结束时会做类似的事情。如果混合使用它们,可能会很难保持直立。