Vue-cli 应用程序
1、什么是 vue-cli
vue-cli 官方提供的一个脚手架(预先定义好的目录结构及基础代码,咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,如下图的 Maven 骨架选择:
2、主要功能
- 统一的目录结构
- 本地调试
- 热部署
- 单元测试
- 集成打包上线
3、环境配置
使用 vue-cli,需要在 node 环境下。
3.1 安装 node.js
官网下载地址:http://nodejs.cn/download
查看是否安装成功
node -v
3.3 安装 Node.js 淘宝镜像加速器(cnpm)
npm install cnpm -g
我们一般使用 npm,因为使用 cnpm 安装也可以,但是有时候显示安装成功,但是使用不了的情况。而当 npm 不能安装的时候,就使用 cnpm
3.4 安装 vue-cli
npm install vue-cli -g
其中,-g 为全局的意思
查看是否安装成功
webpack -v
或
vue list
4、基于 Webpack 模板的 vue-cli 应用程序
# 这里的 myvue 是项目名称,可以根据自己的需求起名
vue init webpack myvue
说明
- Project name:项目名称,默认 回车 即可
- Project description:项目描述,默认 回车 即可
- Author:项目作者,默认 回车 即可
- Install vue-router:是否安装 vue-router,选择 n 不安装(后期需要再手动添加)
- Use ESLint to lint your code:是否使用 ESLint 做代码检查,选择 n 不安装(后期需要再手动添加)
- Set up unit tests:单元测试相关,选择 n 不安装(后期需要再手动添加)
- Setup e2e tests with Nightwatch:单元测试相关,选择 n 不安装(后期需要再手动添加)
- Should we run npm install for you after the project has been created:创建完成后直接初始化,选择 n,我们手动执行
5、初始化并运行
cd myvue
npm install
npm run dev
.注:如果 npm run dev 失败的话,将项目文件中的 node_modules 文件夹及其子文件全部删除,再重新执行命令。
安装并运行成功后在浏览器输入:http://localhost:8080
6、vue-cli 目录结构
- build 和 config:WebPack 配置文件
- node_modules:用于存放 npm install 安装的依赖文件
- src: 项目源码目录
- static:静态资源文件
- .babelrc:Babel 配置文件,主要作用是将 ES6 转换为 ES5
- .editorconfig:编辑器配置
- .gitignore:git 忽略的配置文件
- .postcssrc.js:css 相关配置文件,其中内部的 module.exports 是 NodeJS 模块化语法
- index.html:首页,仅作为模板页,实际开发时不使用
- package.json:项目的配置文件
- name:项目名称
- version:项目版本
- description:项目描述
- author:项目作者
- scripts:封装常用命令
- dependencies:生产环境依赖
- devDependencies:开发环境依赖
7、 vue-cli src 目录
7.1 src
src 目录是项目的源码目录,所有代码都会写在这里。
7.2 main.js
项目的入口文件,我们知道所有的程序都会有一个入口。
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#app',
components: { App },
template: '<App/>'
})
- import Vue from ‘vue’:ES6 写法,会被转换成 require(“vue”); (require 是 NodeJS 提供的模块加载器)
- import App from ‘./App’:意思同上,但是指定了查找路径,./ 为当前目录
- Vue.config.productionTip = false:关闭浏览器控制台关于环境的相关提示
- new Vue({…}):实例化 Vue
- el: ‘#app’:查找 index.html 中 id 为 app 的元素
- template: ‘’:模板,会将 index.html 中 替换为
- components: { App }:引入组件,使用的是 import App from ‘./App’ 定义的 App 组件
7.3 App.vue
组件模板
<template>
<div id="app">
<img src="./assets/logo.png">
<HelloWorld/>
</div>
</template>
<script>
import HelloWorld from './components/HelloWorld'
export default {
name: 'App',
components: {
HelloWorld
}
}
</script>
<style>
#app {
<!-- 字体 -->
font-family: 'Avenir', Helvetica, Arial, sans-serif;
<!-- 文字平滑效果 -->
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
- template:HTML 代码模板,会替换 中的内容
- import HelloWorld from ‘./components/HelloWorld’:引入 HelloWorld 组件,用于替换 template 中的
- export default{…}:导出 NodeJS 对象,作用是可以通过 import 关键字导入
- name: ‘App’:定义组件的名称
- components: { HelloWorld }:定义子组件
7.4 HelloWorld.vue
基本同上,不解释…
至此,vue-cli 搭建的项目已完成了初始化,接下来就是在此基础上进行项目的完善。