詳細介紹ElementUI元件庫

2022-08-10 18:02:01
本篇文章給大家帶來了關於的相關知識,其中主要介紹了關於ElementUI元件庫的相關問題,ElementUI元件庫是一套基於vue2.0的桌面端元件庫,提供了豐富的元件幫助開發人員快速構建頁面,下面一起來看一下,希望對大家有幫助。

【相關推薦:、】

ElementUI介紹

ElementUI是一套基於VUE2.0的桌面端元件庫,ElementUI提供了豐富的元件幫助開發人員快速構建功能強大、風格統一的頁面。

官網地址:http://element-cn.eleme.io/#/zh-CN

在頁面上引入 js 和 css 檔案即可開始使用,如下:

<!-- 引入ElementUI樣式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- 引入ElementUI元件庫 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>

Container 佈局容器

用於佈局的容器元件,方便快速搭建頁面的基本結構:

<el-container>:外層容器。當子元素中包含 <el-header><el-footer> 時,全部子元素會垂直上下排列,否則會水平左右排列

<el-header>:頂欄容器

<el-aside>:側邊欄容器

<el-main>:主要區域容器

<el-footer>:底欄容器

<body>
  <div id="app">
    <el-container>
      <el-header>Header</el-header>
      <el-container>
        <el-aside width="200px">Aside</el-aside>
        <el-container>
          <el-main>Main</el-main>
          <el-footer>Footer</el-footer>
        </el-container>
      </el-container>
    </el-container>
  </div>
  <style>
    .el-header, .el-footer {
      background-color: #B3C0D1;
      color: #333;
      text-align: left;
      line-height: 60px;
    }

    .el-aside {
      background-color: #D3DCE6;
      color: #333;
      text-align: center;
      line-height: 200px;
    }

    .el-main {
      background-color: #E9EEF3;
      color: #333;
      text-align: center;
      line-height: 590px;
    }
  </style>
</body>
<script>
  new Vue({
    el:'#app'
  });
</script>

Dropdown 下拉式選單

將動作或選單摺疊到下拉式選單中。

<el-dropdown split-button size="small" trigger="click">
  個人中心
  <el-dropdown-menu>
    <el-dropdown-item >退出系統</el-dropdown-item>
    <el-dropdown-item divided>修改密碼</el-dropdown-item>
    <el-dropdown-item divided>聯絡管理員</el-dropdown-item>
  </el-dropdown-menu>
</el-dropdown>

NavMenu 導航選單

為網站提供導航功能的選單。

<el-menu>
  <el-submenu index="1">
    <template slot="title">
      <i class="el-icon-location"></i>
      <span slot="title">導航一</span>
    </template>
    <el-menu-item>選項1</el-menu-item>
    <el-menu-item>選項2</el-menu-item>
    <el-menu-item>選項3</el-menu-item>
  </el-submenu>
  <el-submenu index="2">
    <template slot="title">
      <i class="el-icon-menu"></i>
      <span slot="title">導航二</span>
    </template>
    <el-menu-item>選項1</el-menu-item>
    <el-menu-item>選項2</el-menu-item>
    <el-menu-item>選項3</el-menu-item>
  </el-submenu>
</el-menu>

Table 表格

用於展示多條結構類似的資料,可對資料進行排序、篩選、對比或其他自定義操作。

<el-table :data="tableData" stripe>
  <el-table-column prop="date" label="日期"></el-table-column>
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="address" label="地址"></el-table-column>
  <el-table-column label="操作" align="center">
    <!--
		slot-scope:作用域插槽,可以獲取表格資料
    	scope:代表表格資料,可以通過scope.row來獲取表格當前行資料,scope不是固定寫法
    -->
    <template slot-scope="scope">
      <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">編輯</el-button>
      <el-button type="danger" size="mini"  @click="handleDelete(scope.row)">刪除</el-button>
    </template>
  </el-table-column>
</el-table>
<script>
  new Vue({
    el:'#app',
    data:{
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀區金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀區金沙江路 1517 弄'
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀區金沙江路 1519 弄'
      }]
    },
    methods:{
      handleUpdate(row){
        alert(row.date);
      },
      handleDelete(row){
        alert(row.date);
      }
    }
  });
</script>

Pagination 分頁

當資料量過多時,使用分頁分解資料。

<!--
	current-change:內建的事件,當前頁碼改變時會觸發,可以獲取到改變之後的頁碼
-->
<el-pagination
               @current-change="handleCurrentChange"
               current-page="5"
               page-size="10"
               layout="total, prev, pager, next, jumper"
               :total="305">
</el-pagination>
<script>
  new Vue({
    el:'#app',
    methods:{
      handleCurrentChange(page){
        alert(page);
      }
    }
  });
</script>

Message 訊息提示

常用於主動操作後的反饋提示。

<el-button :plain="true" @click="open1">訊息</el-button>
<el-button :plain="true" @click="open2">成功</el-button>
<el-button :plain="true" @click="open3">警告</el-button>
<el-button :plain="true" @click="open4">錯誤</el-button>
<script>
  new Vue({
    el: '#app',
    methods: {
      open1() {
        this.$message('這是一條訊息提示');
      },
      open2() {
        this.$message({
          message: '恭喜你,這是一條成功訊息',
          type: 'success'
        });
      },
      open3() {
        this.$message({
          message: '警告哦,這是一條警告訊息',
          type: 'warning'
        });
      },
      open4() {
        this.$message.error('錯了哦,這是一條錯誤訊息');
      }
    }
  })
</script>

Tabs 分頁

分隔內容上有關聯但屬於不同類別的資料集合。

<h3>基礎的、簡潔的分頁</h3>
<!--
	通過value屬性來指定當前選中的分頁
-->
<el-tabs value="first">
  <el-tab-pane label="使用者管理" name="first">使用者管理</el-tab-pane>
  <el-tab-pane label="設定管理" name="second">設定管理</el-tab-pane>
  <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
  <el-tab-pane label="定時任務補償" name="fourth">定時任務補償</el-tab-pane>
</el-tabs>
<h3>索引標籤樣式的分頁</h3>
<el-tabs value="first" type="card">
  <el-tab-pane label="使用者管理" name="first">使用者管理</el-tab-pane>
  <el-tab-pane label="設定管理" name="second">設定管理</el-tab-pane>
  <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
  <el-tab-pane label="定時任務補償" name="fourth">定時任務補償</el-tab-pane>
</el-tabs>
<h3>卡片化的分頁</h3>
<el-tabs value="first" type="border-card">
  <el-tab-pane label="使用者管理" name="first">使用者管理</el-tab-pane>
  <el-tab-pane label="設定管理" name="second">設定管理</el-tab-pane>
  <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
  <el-tab-pane label="定時任務補償" name="fourth">定時任務補償</el-tab-pane>
</el-tabs>
<script>
  new Vue({
    el: '#app'
  })
</script>

Form 表單

由輸入框、選擇器、單選框、多選框等控制元件組成,用以收集、校驗、提交資料。在 Form 元件中,每一個表單域由一個 Form-Item 元件構成,表單域中可以放置各種型別的表單控制元件,包括 Input、Select、Checkbox、Radio、Switch、DatePicker、TimePicker。

<!--
	rules:表單驗證規則
-->
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
  <!--
  	prop:表單域 model 欄位,在使用 validate、resetFields 方法的情況下,該屬性是必填的
  -->
  <el-form-item label="活動名稱" prop="name">
    <el-input v-model="form.name"></el-input>
  </el-form-item>
  <el-form-item label="活動區域" prop="region">
    <el-select v-model="form.region" placeholder="請選擇活動區域">
      <el-option label="區域一" value="shanghai"></el-option>
      <el-option label="區域二" value="beijing"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="活動時間">
    <el-col :span="11">
      <el-date-picker type="date" placeholder="選擇日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
    </el-col>
    <el-col class="line" :span="2">-</el-col>
    <el-col :span="11">
      <el-time-picker type="fixed-time" placeholder="選擇時間" v-model="form.date2" style="width: 100%;"></el-time-picker>
    </el-col>
  </el-form-item>
  <el-form-item label="即時配送">
    <el-switch v-model="form.delivery"></el-switch>
  </el-form-item>
  <el-form-item label="活動性質">
    <el-checkbox-group v-model="form.type">
      <el-checkbox label="美食/餐廳線上活動" name="type"></el-checkbox>
      <el-checkbox label="地推活動" name="type"></el-checkbox>
      <el-checkbox label="線下主題活動" name="type"></el-checkbox>
      <el-checkbox label="單純品牌曝光" name="type"></el-checkbox>
    </el-checkbox-group>
  </el-form-item>
  <el-form-item label="特殊資源">
    <el-radio-group v-model="form.resource">
      <el-radio label="線上品牌商贊助"></el-radio>
      <el-radio label="線下場地免費"></el-radio>
    </el-radio-group>
  </el-form-item>
  <el-form-item label="活動形式">
    <el-input type="textarea" v-model="form.desc"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="onSubmit">立即建立</el-button>
  </el-form-item>
</el-form>
<script>
  new Vue({
    el: '#app',
    data:{
      form: {
        name: '',
        region: '',
        date1: '',
        date2: '',
        delivery: false,
        type: [],
        resource: '',
        desc: ''
      },
      //定義校驗規則
      rules: {
        name: [
          { required: true, message: '請輸入活動名稱', trigger: 'blur' },
          { min: 3, max: 5, message: '長度在 3 到 5 個字元', trigger: 'blur' }
        ],
        region: [
          { required: true, message: '請選擇活動區域', trigger: 'change' }
        ]
      }
    },
    methods:{
      onSubmit() {
        console.log(this.form);
        //validate:對整個表單進行校驗的方法,引數為一個回撥函數。
        //該回撥函數會在校驗結束後被呼叫,並傳入兩個引數:是否校驗成功和未通過校驗的欄位。
        this.$refs['form'].validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      }
    }
  })
</script>

【相關推薦:、】

以上就是詳細介紹ElementUI元件庫的詳細內容,更多請關注TW511.COM其它相關文章!