vue-cli3 项目创建-配置-发布

一、使用的技术

vue-cli3
vuex
axios
采用的数据接口,easy-mock

二、初始化项目

  • 首先需要安装vue-cli3,官方教程
  • 初始化安装,并成功启动,
  • 初始化项目默认安装router
    创建vue
    创建vue
    vue init webpack itany
    cd itany
    npm install
    npm install less less-loader -D  //生产依赖
    npm install vuex axios -S       //开发依赖
    npm run dev
    
    vue

三、项目结构

  • 项目文件介绍
    |-- build                            // 项目构建(webpack)相关代码
    |   |-- build.js                     // 生产环境构建代码
    |   |-- check-version.js             // 检查node、npm等版本
    |   |-- utils.js                     // 构建工具相关
    |   |-- vue-loader.conf.js           // webpack loader配置
    |   |-- webpack.base.conf.js         // webpack基础配置
    |   |-- webpack.dev.conf.js          // webpack开发环境配置,构建开发本地服务器
    |   |-- webpack.prod.conf.js         // webpack生产环境配置
    |-- config                           // 项目开发环境配置
    |   |-- dev.env.js                   // 开发环境变量
    |   |-- index.js                     // 项目一些配置变量
    |   |-- prod.env.js                  // 生产环境变量
    |-- src                              // 源码目录
    |   |-- assets                       // 静态资源
    |   |-- components                   // vue公共组件
    |   |-- router                       // vue的路由管理
    |   |-- App.vue                      // 页面入口文件
    |   |-- main.js                      // 程序入口文件,加载各种公共组件
    |-- static                           // 静态文件,比如一些图片,json数据等
    |-- .babelrc                         // ES6语法编译配置
    |-- .editorconfig                    // 定义代码格式
    |-- .gitignore                       // git上传需要忽略的文件格式
    |-- .postcsssrc                       // postcss配置文件
    |-- README.md                        // 项目说明
    |-- index.html                       // 入口页面
    |-- package.json                     // 项目基本信息,包依赖信息等
    
  • 自定义修改项目结构
    |-- src                              // 源码目录
    |   |-- common                       // 公共的文件
    |   |   |-- css
    |   |   |-- js
    |   |   |-- images
    |   |-- components                   // vue公共组件
    |   |-- router                       // vue的路由管理
    |   |-- store                        // vuex数据状态管理
    |   |   |-- modules       // 存储数据模块,每个模块都可以拥有自己的state、getters、actions、mutations
    |   |   |   |-- seller.js  // 一个模块
    |   |   |-- actions.js    // 公共的方法(动作)
    |   |   |-- getters.js    // 获取公共的属性
    |   |   |-- mutations.js  // 公共的数据变化
    |   |   |-- index.js      // vuex初始化入口
    |   |   |-- types.js      // 存储方法名(大写)
    |   |-- App.vue                      // 页面入口文件
    |   |-- main.js                      // 程序入口文件,加载各种公共组件
    |-- static
    |   |-- css                          //添加静态资源
    |   |   |-- reset.css
    
    项目结构

四、删除替换多余文件及代码

1、修改文件–src/App.vue

```
<template>
    <div id="app">
        <v-header></v-header>
        <router-view></router-view>
    </div>
</template>

<script>
import Header from './components/header/Header.vue'
export default {
name: 'App',
components: {
    'v-header': Header
}
}
</script>
```

2、修改文件–router/inedx.js

  • 删除路由配置
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  routes: [

  ]
})

3、添加文件–components/header/Header.vue

<template>
    <div>
        欢迎来到我的世界
    </div>
</template>

<script>
    export default {

    }
</script>

<style lang="less" scoped>

</style>

4、删除–components/HelloWorld.vue

5、启动项目预览

五、完善vuex结构

1、新建文件vuex–src/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import actions from './actions'
import seller from './modules/seller'

Vue.use(Vuex);

export default new Vuex.Store({
    getters,
    actions,
    modules: {
        seller
    }
})

2、引入vuex–src/main.js

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

import store from './store/index.js'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  template: '<App/>',
  components: { App }
})

3、新建文件–src/store/getter.js

const getters={
}
export default getters;

4、新建文件–scr/store/types.js

const GET_SELLER = "GET_SELLER"
export default {
  GET_SELLER,
}

5、新建文件–src/store/meodules/seller.js

import types from "../types"
import axios from "axios"

const state = {  //数据源
    seller: {}
}

const getters= {  //获取数据
    seller(state) {
        return state.seller
    }
}

const actions = {  //执行发生的动作,提交一个变化
    getSeller({commit,state}) {
        axios.get('https://easy-mock.com/mock/5c74af248a68351906bd9aaf/example/seller').then(resp => {
            // console.log(resp)
            if(resp.data.success==200) {  
                commit(types.GET_SELLER,resp.data.seller)
            }
        })
    }
}

const mutations= {  //更新数据源
    [types.GET_SELLER](state,data) {
        state.seller = data
    }
}

export default {
    state,
    getters,
    actions,
    mutations
}

6、修改文件–src/components/header/Header.Vue

<template>
    <div class="header">
        <img :src="seller.avatar" alt="altText"/>
        <br>
        {{seller.name}}
    </div>
</template>

<script>
import { mapGetters } from 'vuex';
    export default {
        created () {
            this.$store.dispatch('getSeller');  //执行变化,发送actions
        },
        computed: {
            //对象展开运算符,获取seller数据
            ...mapGetters(['seller'])
        }
    }
</script>

<style lang="less" scoped>
.header {
    img {
        width: 64px;
        height: 64px;
    }
}
</style>

7、运行效果


上一篇
vue中数据交互和传参方式 vue中数据交互和传参方式
一、介绍通过vue-music-app项目,初步熟悉vue中的数据交互和传参方式,此项目中使用到了vuex,vue-router,props,solt传参方式进行页面传参,以及如何设置代理服务器对访问的ip地址进行管理,并且使用到了van
2019-03-03
下一篇
nvm版本管理和nrm下载源管理 nvm版本管理和nrm下载源管理
一、NVM 介绍 我们可能同时在进行2个 项目,而2个不同的项目所使用的node版本又是不一样的,或者是要用更新的node版本进行试验和学习。这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,而nvm就是为解决这个问题而产生
2019-02-10