网上Vue模板不是最新的,我自己做了一个最新的支持 Vue.js 的最小工程模板,方便大家从 Hello world. 入门, 在 VS2017 里学习,并扩展出自己的项目。

下面是创建步骤:

1、在VS2017中建立一个新的 MVC 项目

2、用 npm 添加 vue 支持包

在MVC项目目录下执行:

npm init

npm i --save-dev webpack webpack-cli

npm i --save-dev vue vue-loader  vue-template-compiler

3、添加配置文件和运行文件

在vs项目中,创建 webpack.config.js 配置文件

const path = require('path');
const bundleOutputDir = './wwwroot/dist';
const VueLoaderPlugin = require('vue-loader/lib/plugin'); module.exports = {
resolve: {
extensions: ['.js', '.vue']
},
entry: './ClientApp/main.js',
module: {
rules: [
{ test: /\.vue$/, include: /ClientApp/, loader: 'vue-loader' }
]
},
output: {
path: path.join(__dirname, bundleOutputDir),
filename: '[name].js',
publicPath: 'dist/'
},
plugins: [
new VueLoaderPlugin()
]
}

这算是最小配置了吧。

将vue 程序添加到 ClientApp 目录中,并且加入 main.js

import Vue from 'vue'
import App from './App'

new Vue({
   el: "#app",
   render:h=>h(App)
})

对应的 App.vue 文件内容:

<template>
  <div id="app">
    <h2>Hello Vue. {{message}}</h2>
  </div>
</template>
<script>
  export default {
    name: 'app',
    data: function () {
      return {
        message: "ok."
      }
    }
  }
</script>

修改 HomeController 的 Index.cshtm 文件

@{
ViewData["Title"] = "Home Page";
} <div id='app'>
</div> @section scripts {
<script src="~/dist/main.js" asp-append-version="true"></script>
}

Shared 文件夹下除了 _Layout.cshtml 文件,其它都删掉。并将 _Layout.cshtml 文件内容改为:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - NewTestVue</title>
<base href="~/" /> <environment exclude="Development">
<link rel="stylesheet" href="~/dist/site.css" asp-append-version="true" />
</environment>
</head>
<body>
@RenderBody() @RenderSection("scripts", required: false)
</body>
</html>

将 Views 目录下多余的文件删除。最后剩下如下文件:

4、手动编译 vue 文件

这时,如果手动编译 vue 项目,可在项目目录下执行:

npx webpack  --mode development

5、在VS中运行项目

这时在 VS2017 中执行项目,结果是:

6、后继扩展

现在虽然已经可以运行了,但,vue文件修改后,还只能到命令行手动编译。所以接下来是如何实现:

  •   支持在VS项目中,点击运行时,自动编译vue文件
  • 支持在运行状态下,动态修改 vue 文件,不停止项目运行也能自动编译js文件
  • 在vue源文件,有出错信息时,还需要能定位到源文件的位置

为此我把扩展后的模板上传了,点此下载。希望对大家在VS中学习使用 vue 有帮助。

7、参考资料

《webpack4.0实战那些事儿》  Webpack 4.0 的配置命令解释

《Webpack 4 和单页应用入门》 这个资料很不错,相信你可以学到更多。

《ASP.NET Core, Visual Studio 2017, Vue and ES6 (ES2015)》 工程有点老,还是有帮助的。

《用webpack4打包vue多页项目》

《Setting up a Vue.js Project with webpack 4 and Babel 7》

在dotnetcore的MVC项目中,创建支持 vue.js 的最小工程模板的更多相关文章

  1. Vue项目中使用基于Vue.js的移动组件库cube-ui

    cube-ui 是滴滴公司的技术团队基于 Vue.js 实现的精致移动端组件库.很赞,基本场景是够用了,感谢开源!感谢默默奉献的你们. 刚爬完坑,就来总结啦!!希望对需要的朋友有小小的帮助. (一)创 ...

  2. Asp.net MVC 4新项目中创建area的后续操作

    Asp.net MVC 4新项目中创建area后,往往HomeController与area的HomeController路由发生混淆,需要手工设置一些地方避免mvc无法识别默认路由的状况. 无废话具 ...

  3. 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...

  4. 谈谈MVC项目中的缓存功能设计的相关问题

    本文收集一些关于项目中为什么需要使用缓存功能,以及怎么使用等,在实际开发中对缓存的设计的考虑 为什么需要讨论缓存呢? 缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源(例如数据 ...

  5. 如何在Mvc 6 中创建 Web Api以及如何脱离IIS实现自我托管

    微软推出的Asp.net vNext(asp.net 5.0)的其中的一个目标就是统一mvc 和web api 的框架.接下来我就演示一下一下几个内容 1,怎么在Asp.net mvc 6 中创建简单 ...

  6. 在 ASP.NET MVC 项目中使用 WebForm、 HTML

    原文地址:http://www.cnblogs.com/snowdream/archive/2009/04/17/winforms-in-mvc.html ASP.NET MVC和WebForm各有各 ...

  7. MVC项目中如何判断用户是在用什么设备进行访问

    使用UAParser在C#MVC项目中如何判断用户是在用什么设备进行访问(手机,平板还是普通的电脑) 现在我们开发的很多web应用都要支持手机等移动设备.为了让手机用户能有更加好的用户体验,我们经常为 ...

  8. Mvc 6 中创建 Web Api

    如何在Mvc 6 中创建 Web Api以及如何脱离IIS实现自我托管 微软推出的Asp.net vNext(asp.net 5.0)的其中的一个目标就是统一mvc 和web api 的框架.接下来我 ...

  9. ASP.NET MVC项目中App_Code目录在程序应用

    学习ASP.NET MVC,如果你是开发ASP.NET MVC项目的,也许你去为项目添加前ASP.NET项目的APP_Code目录,在这里创建与添加的Class类,也许你无法在MVC项目所引用. 那这 ...

随机推荐

  1. dup(dup2/dup3)

    readme man~ NAME dup, dup2, dup3 - duplicate a file descriptor SYNOPSIS #include <unistd.h> in ...

  2. (84)Wangdao.com第十八天_JavaScript Promise 对象

    Promise 对象 是 JavaScript 的异步操作解决方案,为异步操作提供统一接口. 目前 JavaScript 原生支持 Promise 对象 它起到代理作用(proxy),充当异步操作与回 ...

  3. react_app 项目开发 (4)_ React UI 组件库 ant-design 的基本使用

    最流行的开源 React UI 组件库 material-ui 国外流行(安卓手机的界面效果)文档 ant-design 国内流行 (蚂蚁金服 设计,一套 PC.一套移动端的____下拉菜单.分页.. ...

  4. [LeetCode] Preimage Size of Factorial Zeroes Function 阶乘零的原像个数函数

    Let f(x) be the number of zeroes at the end of x!. (Recall that x! = 1 * 2 * 3 * ... * x, and by con ...

  5. selenium如何操作HTML5的画布canvas上的元素

    话不多少,上图如下,下图红色框内是一个html5的画布,我们要像操作右上角的保存和数据视图的时候是无法公共selenium的普通定位操作到的,那该怎么办呢? 我们先new一个Selenium的acti ...

  6. Web Api使用Swagger提供在线文档

    1.添加Swashbuckle引用 2.生成XML文件 3.添加XML解析,在接口添加注释信息 4.运行项目输入地址   http://localhost:58254/swagger

  7. appium api笔记

    打印上下文driver.contexts打印当前上下文driver.contextdriver.current_context切换上下文driver.switch_to.context('WEBVIE ...

  8. ItunesConnect:"Missing Push Notification Entitlement"警告-----以及解决方法

    最近开发的cordova应用,要做ios的适配,并且发布版本,但是有一次在发测试版本的时候,突然收到一封邮件警告,原文如下: Missing Push Notification Entitlement ...

  9. VM中centos设置子网内虚拟机ip

    ,首先应该设置vm的网络,打开编辑->虚拟网络编辑器,弹出框及具体设置如下图 2,选中相应的虚拟机,右键设置,并设置相应的选项,具体设置如下图 3.设置完成后,打开虚拟机,等待虚拟机启动后,输入 ...

  10. 来吧学学.Net Core之项目文件简介及配置文件与IOC的使用

    序言 在当前编程语言蓬勃发展与竞争的时期,对于我们.net从业者来说,.Net Core是风头正紧,势不可挡的.芸芸口水之中,不学习使用Core,你的圈内处境或许会渐渐的被边缘化.所以我们还是抽出一点 ...