一、初始Vue-Cli
win
1. 安装
win 键 + r 输入 cmd
然后复制一下代码:
npm install -g @vue/cli
OR
yarn global add @vue/cli
2.查看版本
vue --version
3.升级
npm update -g @vue/cli
或者
yarn global upgrade --latest @vue/cli
3.打开控制台
创建一个项目:(vue create ···)
输入npm create demo
(创建的名字不能是汉字或大写字母)
创建项目完成如图
public :
静态目录
一般不动它
src :代码目录
--开发目录
打开src文件,最核心的是main.js
文件
在src目录下,App.vue文件
node_modules :包
项目依赖
gitignore :里面存放的是在这个git仓库中的忽略文件或目录
babel.congig.js : (作用) Es6转化为Es5 【有的Es6语法在浏览器环境是无法识别的,这时候需要去转换】
生产依赖和开发依赖
生产依赖:是将来你项目打包的时候要参与打包
开发依赖:你在开发项目的时候需要依赖
package-lock.json文件可以删除
发送项目给别人时,可以把node_modules删除,(文件太大)
main.js文件
cd demo 跳转到demo
npm run serve 再开发环境中运行
ctrl + 鼠标左键 打开预览网址(Local:http://localhost:8080/)
// 导入vue
import Vue from 'vue'
// 导入App组件
import App from './App.vue'
// 导入ElementUI组件库
import ElementUI from 'element-ui';
// 导入ElementUI组件库的样式
import 'element-ui/lib/theme-chalk/index.css';
// 由于ElementUI组件库是插件,所有必须要use
Vue.use(ElementUI);
// 不显示生产提示
Vue.config.productionTip = false
// 创建vue实例
new Vue({
// render是渲染函数
render: h => h(App),
}).$mount('#app')
App.vue文件
<template>
<div id="app">
<h2>{{title}}</h2>
<p>汽车信息:{{car}}</p>
<p>飞机信息:{{planeName}}-{{planePrice}}</p>
<!-- 3.使用组件 -->
<Child :car="car" :planeName="planeName" :planePrice="planePrice"
@updatePName="planeName=$event" @updatePPrice="planePrice=$event"></Child>
<Element></Element>
<Charts></Charts>
</div>
</template>
<script>
// xxx.vue是vue的单文件组件
// 每个vue的单文件组件由三个部分组成:template里面放置模板内容,script里面放置js代码,style里面放置样式
// 使用组件的步骤:
// 1.导入组件
import Child from './components/Child.vue'
import Element from './components/ELement.vue'
import Charts from './components/Charts.vue'
export default {
// name选项定义组件的名称
name: 'App',
// data选项定义组件的数据
data() {
return {
title:'欢迎学习Vue,月薪过万不是梦',
//定义一辆车的信息
car:{
name:'奔驰',
price:'50W'
},
//飞机信息
planeName:'波音747',
planePrice:'10Y'
}
},
// 2.注册组件
components:{
Child,
Element,
Charts
}
}
</script>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
#app {
border: 1px solid #eee;
margin: 10px;
padding: 10px;
}
</style>
在components 创建Child.vue文件
<template>
<div class="child">
<h3>{{title}}</h3>
<hr>
<p>车名:<input type="text" v-model="car.name"></p>
<p>车价:<input type="text" v-model="car.price"></p>
<hr>
<p>飞机名称:<input type="text" v-model="myPlaneName"></p>
<p>飞机价格:<input type="text" v-model="myPlanePrice"></p>
</div>
</template>
<script>
// 每个组件,其实就是一个导出的对象
export default {
name:'Child',
props:['car','planeName','planePrice'],
// 注意:组件里面的data一定要是一个方法,由方法返回一个对象
data() {
return {
title:'我是Child组件',
//中转父组件传递过来的值
myPlaneName : this.planeName,
myPlanePrice : this.planePrice
}
},
watch:{
myPlaneName(val){
this.$emit('updatePName',val)
},
myPlanePrice(val){
this.$emit('updatePPrice',val)
}
}
}
</script>
<style>
.child{
border: 1px solid red;
padding: 10px;
}
hr{
margin: 10px 0;
}
</style>
创建Element.vue文件
<template>
<div class="el">
<h3>Element-UI组件库</h3>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="日期" width="180"> </el-table-column>
<el-table-column prop="name" label="姓名" width="180"> </el-table-column>
<el-table-column prop="address" label="地址"> </el-table-column>
</el-table>
<el-pagination background layout="prev, pager, next" :total="1000">
</el-pagination>
</div>
</template>
<script>
export default {
name: "Element",
data() {
return {
tableData: [
{
date: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
},
{
date: "2016-05-04",
name: "王小虎",
address: "上海市普陀区金沙江路 1517 弄",
},
{
date: "2016-05-01",
name: "王小虎",
address: "上海市普陀区金沙江路 1519 弄",
},
{
date: "2016-05-03",
name: "王小虎",
address: "上海市普陀区金沙江路 1516 弄",
},
],
};
},
};
</script>
<style>
.el {
border: green solid 1px;
padding: 10px;
margin-top: 10px;
}
</style>
创建Charts.vue文件
在项目中使用ECharts
<template>
<div class="charts">
<h3>在vue项目中使用ECharts</h3>
<div id="main"></div>
</div>
</template>
<script>
// 导入echarts对象
import * as echarts from "echarts";
export default {
name: "Charts",
data() {
return {
list:[
{
title:'衬衫',
xl:5,
kc:9
},
{
title:'羊毛衫',
xl:20,
kc:19
},
{
title:'雪纺衫',
xl:36,
kc:55
},
{
title:'裤子',
xl:10,
kc:2
},
{
title:'高跟鞋',
xl:10,
kc:5
},
{
title:'袜子',
xl:20,
kc:35
}
]
}
},
mounted() {
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById("main"));
// 绘制图表
myChart.setOption({
title: {
text: "产品销售信息",
subtext:'2021-12-8'
},
legend:{
},
tooltip: {},
xAxis: {
// 获取X轴的数据
data: this.list.map(r=>r.title)
},
yAxis:{},
// 获取系列数据
series: [
// 第一个系列显示销量信息
{
name: "销量",
type: "bar",
data: this.list.map(r=>r.xl)
}
,
// 第二个系列显示库存信息
{
name: "库存",
type: "bar",
data: this.list.map(r=>r.kc)
}
],
});
},
};
</script>
<style>
.charts {
border: 1px solid blue;
padding: 10px;
margin-top: 10px;
}
.charts #main {
width: 500px;
height: 300px;
border: 1px solid red;
}
</style>