最近学习了一段时间Vue,把文档看完之后有点懵懵懂懂,不过刚好赶上Element和iView等应用Vue编写的框架,就先看完文档,然后看了Element的源码,来巩固自己对Vue的见知。

在阅读本系列文章之前,希望你可以做到:
1. 系统阅读一遍Vue文档;
1. 系统查看一下Element的官方文档(本系列文章以Element 2.0.3版本做说明)

首先先说一下,直接从github上面得到的源码是无法编译的,我们可以用如下方法来运行:

在Element官方文档的快速上手里面,有为我们提供的项目模板,也就是下面的这个链接:https://github.com/ElementUI/element-starter

直接将其拷贝到本地,在你已经成功安装node.js和npm的情况下,直接:

npm install

或者是使用淘宝镜像直接:

cnpm install

推荐使用淘宝镜像,毕竟快。依赖安装完成之后,我们可以直接:

npm run dev

这个时候基本上就可以得到如下的目录结构:
这里写图片描述
之后就可以直接将Element官方文档中的示例代码复制在App.vue文件中,进行查看。例如下面这样:

<template>
  <el-container>
    <el-header>
      <el-menu
        :default-active="activeIndex"
        class="el-menu-demo"
        mode="horizontal"
        @select="handleSelect"
        background-color="#545c64"
        text-color="#fff"
        active-text-color="#ffd04b">
        <div class="fl title">管理后台</div>
        <div class="fr">
          <el-menu-item index="1">处理中心</el-menu-item>
          <el-submenu index="2">
            <template slot="title">我的工作台</template>
            <el-menu-item index="2-1">选项1</el-menu-item>
            <el-menu-item index="2-2">选项2</el-menu-item>
            <el-menu-item index="2-3">选项3</el-menu-item>
          </el-submenu>
          <el-menu-item index="3"><a href="https://www.ele.me" target="_blank">订单管理</a></el-menu-item>
        </div>
      </el-menu>
    </el-header>
    <el-main>
      <el-container>
        <el-aside width="240px">
          <el-row class="tac">
            <el-menu
              default-active="2"
              class="el-menu-vertical-demo"
              @open="handleOpen"
              @close="handleClose">
              <el-submenu index="1">
                <template slot="title">
                  <i class="el-icon-location"></i>
                  <span>导航一</span>
                </template>
                <el-menu-item-group>
                  <template slot="title">分组一</template>
                  <el-menu-item index="1-1">选项1</el-menu-item>
                  <el-menu-item index="1-2">选项2</el-menu-item>
                </el-menu-item-group>
                <el-menu-item-group title="分组2">
                  <el-menu-item index="1-3">选项3</el-menu-item>
                </el-menu-item-group>
                <el-submenu index="1-4">
                  <template slot="title">选项4</template>
                  <el-menu-item index="1-4-1">选项1</el-menu-item>
                </el-submenu>
              </el-submenu>
              <el-menu-item index="2">
                <i class="el-icon-menu"></i>
                <span slot="title">导航二</span>
              </el-menu-item>
              <el-menu-item index="3">
                <i class="el-icon-setting"></i>
                <span slot="title">导航三</span>
              </el-menu-item>
            </el-menu>
          </el-row>
        </el-aside>
        <el-container>
          <el-main>
            <el-table :data="tableData">
              <el-table-column prop="date" label="日期" width="140">
              </el-table-column>
              <el-table-column prop="name" label="姓名" width="120">
              </el-table-column>
              <el-table-column prop="address" label="地址">
              </el-table-column>
            </el-table>
          </el-main>
          <el-footer>
            <el-pagination
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page.sync="currentPage"
              :page-size="100"
              layout="total, prev, pager, next"
              :total="1000">
            </el-pagination>
          </el-footer>
        </el-container>
      </el-container>
    </el-main>
  </el-container>
</template>

<script>
export default {
  data() {
    const item = {
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      };
      return {
        activeIndex: '2-1',
        tableData: Array(5).fill(item),
        currentPage: 5,
      };
    },
    methods: {
      handleSelect(key, keyPath) {
        console.log(key, keyPath);
      },
      handleOpen(key, keyPath) {
        console.log(key, keyPath);
      },
      handleClose(key, keyPath) {
        console.log(key, keyPath);
      },
       handleSizeChange(val) {
        console.log(`每页 ${val} 条`);
      },
      handleCurrentChange(val) {
        console.log(`当前页: ${val}`);
      }
    }
}
</script>

<style>
.fl {
  float: left;
}
.fr {
  float: right;
}
.title {
  width: 125px;
  text-align: center;
  line-height: 60px;
  color: #fff;
}
</style>

就可以直接看到下面的界面:
这里写图片描述
安装Vue官方提供的devtools有助于我们进行快速开发(只不过chrome商店由于访问等原因可能下载不到,不过我们可以使用Firefox的插件),而且还可以直接浏览器中查看插件直接数据/计算属性/方法等的计算结果,对插件内部的情况一目了然,如下图所示:
这里写图片描述

做好这些准备之后,下章我们来正式从Element融会贯通Vue的使用方法。

Logo

前往低代码交流专区

更多推荐