如何设置ASP.NET Core + Vue.js?

JavaScript

神无伽罗阳光

2020-03-11

我需要将Vue.js与一些ASP.NET Core MVC视图集成在一起。他们说,我选择Vue.js而不是其他选择,是因为它似乎更简单-“ 只需通过<script>标签添加 ”即可。无需学习Gulp / Grunt / Webpack / Browserify / etc。

事实证明这是错误的。在我第一次尝试处理日期时,我尝试了一些扩展名,例如vue-momentvue-datetime-picker这些扩展名来自与Vue.js相关的官方精选列表,但在这里遇到了麻烦虽然第一个没有require()强制使用JS语法(CommonJS?),但是第二个没有它就无法工作。'use babel'imports/的其他扩展exports是ECMAScript 6,需要进行扩展因此,大多数Vue.js库和工具确实需要编译器,require()语法以及Node领域的所有东西吗?

我应该如何设置我的项目以与ASP.NET Core MVC + Vue.js一起工作,以便可以使用Vue插件开发许多小型Vue应用程序(可以require(stuff))?

第587篇《如何设置ASP.NET Core + Vue.js?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

6个回答
樱西里猴子 2020.03.11

我花了很长时间学习如何使用Browserify和Babel,以便可以设置自己的ES6环境。但是,在使用Vue时,我很高兴使用默认模板,最好通过安装Vue-CLI来访问它们您可以在Browserify和Webpack之间进行选择,也可以使用仅运行时版本进行简单设置或完整使用lint,单元测试和Single-File Components。

它只是工作。

神乐米亚 2020.03.11

这个问题有点老了,但是..

我在GitHub上有一个使用ASP.NET和Vue.js 的小示例项目。它使用Yarn(或npm)作为程序包管理器和Webpack。

它不是.NET Core,但使用方式相同。它可能会帮助您入门。

奇怪的文件结构是因为它在我们的Sitecore CMS系统上运行。

希望能帮助到你。

神无Harry 2020.03.11

此处提供了将Vue.js与ASP.NET Core集成的最佳分步教程:

https://ourtechroom.com/tech/integrating-vuejs-in-aspnetcore-application/

我在这里发布了一个GitHub示例项目:

https://github.com/Diwas777/integrating-vue-with-asp.net-core-project

卡卡西猪猪 2020.03.11

首先,免责声明:我找不到任何真正适合我需要的东西,因此我从头开始提出了一个解决方案。见末。

您询问是否要通过<script>标记包含Vue (在这种情况下为CDN构建)。但是,您还提到使用Babel和ES6模块功能。在那种情况下,我建议将Webpack用于客户端应用程序,它将使用Babel编译ES6,允许您使用模块和组件,并使用模板!您还将获得热模块重新加载(编辑源代码并实时查看客户端应用程序中的更改!),Webpack将SPA捆绑到静态HTML5应用程序中。

官方的Vue.js文档指向他们自己的Webpack模板

所以,你可以独立运行的WebPack开发服务器和你的ASP.NET应用程序的核心,如果适合您的需求,但有一个更好的解决方案,使发展更加精简:

Microsoft的开源JavaScriptServices允许您从ASP.NET Core执行Node.js,并且它们具有一些Webpack中间件,该中间件在调试构建期间将Webpack开发服务器集成到您的应用程序中。

他们提供了Angular 2的官方模板,甚至提供了标有Vue.js的模板,但是Vue模板只是官方的Webpack模板,没有与.NET集成。这就像独立服务器一样。

我找不到为Vue.js做到这一点的任何模板,因此我将一个示例ASP.NET Core应用程序放在一起,该应用程序将Webpack开发中间件与Vue.js Webpack应用程序一起加载。当.NET Core服务器在开发模式下运行时,您可以编辑Vue源,并且更改将通过快速增量补丁反映出来,而无需重建整个应用程序。在发布模式下,.NET Core将使用预构建的Webpack输出。您可以在GitHub上找到它:

https://github.com/0xFireball/YetAnotherShrinker

上面链接的存储库具有使用NancyFx,axios,Vue.js和Vue Material的完整应用程序演示,并且是一个简单的URL缩短器。如果您想要更简单的设置步骤,并且可以轻松将其添加到现有应用中,请查看我的博客文章

强制性披露:我写了该博客文章。

西门泡芙Jim 2020.03.11

我创建了将.NET MVCVue.js结合在一起的模板您可以使用整个Vue生态系统,但是如果您不想在任何页面上使用它,都可以选择退出。

GitHub:https : //github.com/danijelh/aspnetcore-vue-typescript-template

媒介:https//medium.com/@danijelhdev/multi-page-net-core-with-vue-js-typescript-vuex-vue-router-bulma-sass-and-webpack-4-efc7de83fea4

您可以将其用作示例或起点。

Davaid阳光小卤蛋 2020.03.11

我来晚了,但是现在有一个.NET Core可用的模板,您可以使用一个命令来构建。在安装了.NET Core的Windows框中,只需创建一个空文件夹,然后在该文件夹中运行以下命令以显示可用模板的列表:

dotnet new

如果没有所有模板,则只需运行以下模板即可安装SPA模板:

dotnet new --install Microsoft.AspNetCore.SpaTemplates::*

这可以搭建一个新的Vue应用程序:

dotnet new vue

在几毫秒内,便会构建一个完整的全新Vue.js单页Web应用程序,该Web应用程序具有可运行的.NET Core后端,并带有控制器,视图等。只需使用VS或VS Code打开项目,您就可以离开。

还有Aurelia,Angular,Knockout和React的模板!您可以将它们全部构建起来,然后比较它们如何解决相同的问题。Angular甚至可以立即进行服务器端预渲染!

我知道.NET Core有路要走,但是它一天比一天变得越来越强大!

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android