Vue-cli(1)--初始Vue-cli

一、全局安装vue-cli

打开Vue-Cli官网,找到安装界面,复制安装包的代码。再Windows+R打开电脑终端,输入cmd,粘贴安装指令。

Vue-Cli官网:https://cli.vuejs.org/zh/guide/installation.html
可以使用下列任一命令安装这个新的包:

npm install -g @vue/cli
# OR
yarn global add @vue/cli

安装之后,你就可以在命令行中访问 vue 命令。你可以通过简单运行 vue,看看是否展示出了一份所有可用命令的帮助信息,来验证它是否安装成功。

你还可以用这个命令来检查其版本是否正确:

vue --version

如需升级全局的 Vue CLI 包,请运行:

npm update -g @vue/cli

# 或者
yarn global upgrade --latest @vue/cli

二、创建项目

1、在文件夹中打开终端,创建文件名为demo的项目。注意:要在cmd环境下安装

在当前文件目录中输入以下代码

vue create demo

2、创建成功后

在package.json文件中,可以看见有生产环境依赖(dependencies: 可以参与项目打包)和开发环境依赖(devDependencies:不能参与项目打包)

components文件夹中可以存放组件,App.vue是全局组件,main.js是入口文件。

注意:xxx.vue是vue的单文件组件。每个vue的单文件组件由3个部分组成,template里面放置模板内容,script里面放置js代码,style里面放置样式。

main.js文件中写入以下代码

//导入vue
import Vue from 'vue'
//导入app组件
import App from './App.vue'
//不显示生产提示
Vue.config.productionTip = false
//创建vue实例
new Vue({
  //render是渲染函数
  render: h => h(App),
}).$mount('#app')

在开发环境中运行可以在当前终端文件目录里输入以下代码

npm run serve

执行完成后,会出现以下界面,点击任何一条网址并按住Ctrl键来运行项目。

image.png

在开发环境中打包可以在当前文件目录里输入以下代码

npm run build

在components文件中创建一个新的组件Child.vue。注意:组件名称一般开头大写。在组件里写入以下代码。

<template>
  <div class="child">
      <h3>{{title}}</h3>
      <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 black;
       padding: 10px;
   }
   hr{
       margin: 10px 0;
   }
</style>

在全局组建中引入、注册、使用子组件。

template>
  <div id="app">
     <h2>{{title}}</h2>
     <p>汽车信息:{{car}}</p>
     <p>飞机信息:{{planeName}}--{{planePrice}}</p>
     <Child :car='car' :planeName='planeName' :planePrice='planePrice' @updatePName='planeName=$event' @updatePPrice='planePrice=$event'></Child>
  </div>
</template>

<script>
//xxx.vue是vue的单文件组件
//每个vue的单文件组件由3个部分组成,template里面放置模板内容,script里面放置js代码,style里面放置样式。

//导入其他组件的步骤:
//1.导入组件
import Child from './components/Child.vue'

export default {
  //name选项定义组件的名称
  name: 'App',
  //data选项定义组件的数据。
  data(){
    return {
      title:'好好学习,争取拿高薪!!!',
      //定义一辆车的信息
      car:{
        name:'奔驰',
        price:'30W'
      },
      //飞机信息
      planeName:'波音747',
      planePrice:'2000W'
    }
  },
  //2.注册组件
  components:{
    Child
  }
}
</script>

<style>
*{
  margin: 0;
  padding: 0;
  list-style: none;
}
#app {
  border: 1px solid blue;
  padding: 10px;
}
</style>

在components文件夹里在创建一个新的子组件Element-UI组件。首先需要重新开启一个终端,并在当前demo文件目录里安装Element-UI包。
Element-UI官网地址:https://element.eleme.cn/#/zh-CN/component/installation

npm i element-ui -S

在 main.js 中写入以下内容:

//导入Element-UI组件库
import ElementUI from 'element-ui';
//导入Element-UI组件库的样式
import 'element-ui/lib/theme-chalk/index.css';
//由于Element-UI组件库是插件,所以必须要use
Vue.use(ElementUI);

在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
      :page-size="20"
      :pager-count="11"
      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: 1px solid red;
  margin: 10px 0;
  padding: 10px;
}
</style>

在全局组件中导入、注册、使用Element-UI子组件。

<template>
  <div id="app">
     <Element></Element>
  </div>
</template>
<script>
   import Element from './components/Element.vue'
  export default {
  //name选项定义组件的名称
  name: 'App',
  //2.注册组件
  components:{
    Element,
  }
}
</script>
<style>
*{
  margin: 0;
  padding: 0;
  list-style: none;
}
#app {
  border: 1px solid blue;
  padding: 10px;
}
</style>

在components文件夹里再创建一个新的子组件Charts组件。首先需要重新开启一个终端,并在当前demo文件目录里安装 ECharts包。
ECharts官方地址:https://echarts.apache.org/zh/index.html

npm install echarts --save

注意:为了避免弹出提示语句‘定义但没有使用’,我们需要在package.json文件中,加入以下代码。更改了package.json文件,就一定要退出当前终端(ctrl+C之后 再次运行npm run serve)

 "rules": {
      "no-unused-vars":"off"
    }

在Charts.vue文件中可以写入以下代码。

<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:10
              },
              {
                  title:'羊毛衫',
                  xl:20,
                  kc:12
              },
              {
                  title:'雪纺衫',
                  xl:36,
                  kc:22
              },
              {
                  title:'裤子',
                  xl:10,
                  kc:23
              },
              {
                  title:'高跟鞋',
                  xl:10,
                  kc:33
              },
              {
                  title:'袜子',
                  xl:20,
                  kc:30
              }
          ]
      }
  },
  mounted() {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById("main"));
    // 绘制图表
    myChart.setOption({
      title: {
        text: "产品销售信息",
        subtext:'2021-12-08'
      },
      tooltip: {},
      legend:{},
      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 brown;
  padding: 10px;
  margin-top: 10px;
}
.charts #main {
  width: 500px;
  height: 400px;
  border: 1px solid green;
}
</style>

在全局组件中引入、注册、使用Charts子组件。

<template>
  <div id="app">
     <Charts></Charts>
  </div>
</template>

<script>
//xxx.vue是vue的单文件组件
//每个vue的单文件组件由3个部分组成,template里面放置模板内容,script里面放置js代码,style里面放置样式。

//导入其他组件的步骤:
//1.导入组件
import Charts from './components/Charts.vue'

export default {
  //name选项定义组件的名称
  name: 'App',
  //2.注册组件
  components:{
    Charts
  }
}
</script>

<style>
*{
  margin: 0;
  padding: 0;
  list-style: none;
}
#app {
  border: 1px solid blue;
  padding: 10px;
}
</style>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容