cocoer 2018-09-19
最近在研究学习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>
background-color: blue;background-color: yellow;<input type="button" value="变蓝" @click="changeColorT