vue新vue-cli3环境配置和模拟json数据的实例

最近在研究学习vue,发现环境配置特麻烦,就是跟着文档步骤一步一步来,也会遇到各种想不到的坑,vue-cli3的配置比老的简洁了很多,与以往的配置也有所不同:

1、安装步骤以前是

npm install vue-cli -g

现在是:

npm install -g @vue/cli

2、vue-cli2 新建项目

vue init webpack Vue-Project

vuecli3新建项目,在你创建后会有一个保存当前配置的功能

vue create <project-name>

vue-cli2进入到项目,安装依赖包

cd Vue-Project
  npm install

运行项目

vue-cli2 npm run dev

vue-cli3 npm run serve

vue-cli3 的vue.config.js

//模拟数据
const express = require('express')
const app = express()
var appData = require('./src/data/goodlist.json')
var seller = appData
var apiRoutes = express.Router();
app.use('/api',apiRoutes)

module.exports = {
  // 基本路径
  baseUrl: '/',
  // 输出文件目录
  outputDir: 'dist',
  // eslint-loader 是否在保存的时候检查
  lintOnSave: true,
  // use the full build with in-browser compiler?
  // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
  runtimeCompiler: true,
  // webpack配置
  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: () => {},
  configureWebpack: () => {},
// vue-loader 配置项
// https://vue-loader.vuejs.org/en/options.html
//vueLoader: {},
// 生产环境是否生成 sourceMap 文件
productionSourceMap: true,
  // css相关配置
  css: {
  // 是否使用css分离插件 ExtractTextPlugin
  extract: true,
    // 开启 CSS source maps?
    sourceMap: false,
    // css预设器配置项
    loaderOptions: {},
  // 启用 CSS modules for all css / pre-processor files.
  modules: false
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require('os').cpus().length > 1,
  // 是否启用dll
  // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode

  // PWA 插件相关配置
  // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  pwa: {},
// webpack-dev-server 相关配置
devServer: {
//模拟数据开始
  before(app) {
    app.get('/api/seller', (req, res) => {
      res.json({
        // 这里是你的json内容
        errno: 0,
        data: seller
      })
    })
  },

  open: process.platform === 'darwin',
    host: '0.0.0.0',
    port: 8080,
    https: false,
    hotOnly: false,
    proxy: null// 设置代理

},
// 第三方插件配置
pluginOptions: {
  // ...
}
}

json代码

{
 "list": [
  {
   "title": "name1",
   "id": "0"
  },
  {
   "title": "name2",
   "id": "1"
  },
  {
   "title": "name3",
   "id": "2"
  }
 ]
}

获取数据输出vue文件

<template>
 <div>
  <ul>
     <li v-for="item in itemlis">{{ item.title }}</li>
   </ul>
 </div>
</template>

<script>
import css from '../assets/css/base.css'
import Vue from'vue'
import VueResource from 'vue-resource'

Vue.use(VueResource)
export default {
 name: 'HelloWorld',

  created:function(){
   this.$http.get('api/seller').then((res)=>{
     var arrJson=JSON.parse(res.bodyText)
     this.itemlis=arrJson.data.list //注意使用箭头函数才可用this不然需要在函数外先定义变量把this赋值给变量
     console.log(this.itemlis)
   },function(err){
     console.log(err)
   })
  },
  //组件里面必须用函数,return方式获取data
 data () {
  return {
   msg: 'Welcome to Your Vue.js App',
   itemlis:[],
  }
 }
}
</script>

相关推荐