最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3?UI組件庫Element?Plus實例詳解

 更新時間:2026年05月04日 08:39:14   作者:吳聲子夜歌  
這篇文章主要介紹了ElementPlus框架中的一些常用組件,通過示例代碼展示了這些組件的具體使用方法,本文結(jié)合示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧

1、開關(guān)與滑塊組件

開關(guān)是很常見的一種頁面元素,有開和關(guān)兩種狀態(tài)來支持用戶交互。在Element Plus中,使用el-switch來創(chuàng)建開關(guān)組件。開關(guān)組件的狀態(tài)只有兩種,如果需要使用連續(xù)狀態(tài)的組件,則可以使用el-slider組件,這個組件能夠渲染出進度條與滑塊,用戶可以方便地對進度進行調(diào)節(jié)。

1.1、開關(guān)組件

el-switch組件支持開發(fā)者對開關(guān)顏色、背景顏色等進行定制,常用屬性列舉如表所示。

屬性意義
disabled設(shè)置是否禁用布爾值
loading設(shè)置是否加載中布爾值
width設(shè)置按鈕的寬度數(shù)值
active-text設(shè)置開關(guān)打開時的文字描述字符串
inactive-text設(shè)置開關(guān)關(guān)閉時的文字描述字符串
active-value設(shè)置開關(guān)打開時的值布爾值/字符串/數(shù)值
inactive-value設(shè)置開關(guān)關(guān)閉時的值布爾值/字符串/數(shù)值
active-color設(shè)置開關(guān)打開是的背景色字符串
inactive-color設(shè)置開關(guān)關(guān)閉時的背景色字符串
validate-event改變開關(guān)狀態(tài)時,是否觸發(fā)表單校驗布爾值
before-change開關(guān)狀態(tài)之前調(diào)用的函數(shù)函數(shù)
Change開關(guān)狀態(tài)發(fā)生變化后調(diào)用的函數(shù)函數(shù)

下面的代碼將演示幾種基礎(chǔ)的標(biāo)簽樣式:

<template>
  <div style="margin: 20px;">
    <el-switch
      v-model="switch1"
      active-text="會員"
      inactive-text="非會員"
      active-color="#00FF00"
      inactive-color="#FF0000">
    </el-switch>
    <el-switch
      v-model="switch2"
      active-text="加載中"
      :loading="true">
    </el-switch> 
    <el-switch
      v-model="switch3"
      inactive-text="禁用"
      :disabled="true">
    </el-switch>
  </div>
</template>

1.2、滑塊組件

當(dāng)頁面元素有多種狀態(tài)時,我們可以嘗試使用滑塊組件來實現(xiàn)。滑塊組件既支持承載連續(xù)變化的值,也支持承載離散變化的值。同時,滑塊組件還支持結(jié)合輸入框一起使用,可謂非常強大。el-slider組件的常用屬性列舉如表所示。

屬性意義
min設(shè)置滑塊的最小值數(shù)值
max設(shè)置滑塊的最大值數(shù)值
disabled設(shè)置是否禁用滑塊布爾值
step設(shè)置滑塊步長數(shù)值
show-input設(shè)置是否顯示輸入框布爾值
show-input-controls設(shè)置顯示的輸入框是否有控制按鈕布爾值
input-size設(shè)置輸入框尺寸large
small
default
show-stops是否顯示間斷點布爾值
show-tooltip是否顯示刻度提示布爾值
format-tooltip對刻度信息進行格式化函數(shù)
range設(shè)置是否為范圍選擇模式布爾值
vertical設(shè)置是否為豎向模式布爾值
height設(shè)置豎向模式時滑塊組件的高度字符串
marks設(shè)置標(biāo)記對象
change滑塊組件的值發(fā)生變化時調(diào)用的函數(shù),只在鼠標(biāo)拖動結(jié)束觸發(fā)函數(shù)
input滑塊組件的值發(fā)生變化時調(diào)用的函數(shù),鼠標(biāo)揉動過程中也會觸發(fā)函數(shù)

滑塊組件默認(rèn)的取值范圍為0~100,我們幾乎無須設(shè)置任何額外屬性,就可以對滑塊組件進行使用,例如:

<script setup>
  import { ref, watch } from 'vue'
  const sliderValue = ref(50)
</script>
<template>
  <div style="margin: 20px;">
    <el-slider v-model="sliderValue"></el-slider> 
  </div>
</template>

可以看到,當(dāng)我們對滑塊進行拖動時,當(dāng)前的值會顯示在滑塊上方,對于顯示的文案,我們可以通過format-tooltip屬性來進行定制。例如,要進行百分比顯示,示例代碼如下:

     <el-slider v-model="sliderValue" :format-tooltip="format"></el-slider>

format函數(shù)實現(xiàn)如下:

  const format = (value)=>{
    return `${value}%`
  }

如果滑塊組件可選中的值為離散的,我們可以通過step屬性來進行控制,在上面代碼的基礎(chǔ)上,若只允許選擇以10%為間隔的值,示例代碼如下:

    <el-slider
       v-model="sliderValue"
       :format-tooltip="format"
       :step="10"
       :show-stops="true"
     ></el-slider>

如果設(shè)置了show-input屬性的值為true,則頁面還會渲染出一個輸入框,輸入框中輸入的值與滑塊組件的值之間是聯(lián)動的,如圖所示。

el-slider組件也支持進行范圍選擇,當(dāng)我們需要讓用戶選中一段范圍時,可以設(shè)置其range屬性為true,效果如圖所示。

最后,我們再來看一下el-slider組件的marks屬性,這個屬性可以為滑塊的進度條配置一組標(biāo)記,對于一些重要節(jié)點,還可以使用標(biāo)記進行突出展示。示例代碼如下:

     <el-slider v-model="sliderValue" :marks="marks"></el-slider>

marks數(shù)據(jù)配置如下:

  const marks = {
    0: '起點',
    50: '半程',
    90: {
      style: {color: '#ff0000'},
      label: '就到終點啦'
    }
  }

2、選擇器組件

選擇器組件的使用場景與選擇列表類似,只是其場景更加定制化。Element Plus中提供了時間日期、顏色相關(guān)的選擇器,在需要的場景中可以直接使用。

2.1、時間選擇器

el-time-picker用來創(chuàng)建時間選擇器,可以方便地供用戶選擇一個時間點或時間范圍。el-time-picker中的常用屬性列舉如表所示。

屬性意義
readonly設(shè)置是否只讀布爾值
disabled設(shè)置是否禁用布爾值
clearable設(shè)置是否清晰顯示按鈕布爾值
size設(shè)置輸入框尺寸large
small
default
placeholder設(shè)置占位內(nèi)容字符串
start-placeholder在范圍選擇模式下,設(shè)置起始時間的占位內(nèi)容字符串
end-placeholder在范圍選擇模式下,設(shè)置結(jié)束時間的占位內(nèi)容字符串
is-range設(shè)置是否為范圍選擇模式布爾值
arrow-control設(shè)置是否使用箭頭進行時間選擇布爾值
align設(shè)置對齊方式left
center
right
range-separator設(shè)置范圍選擇時的分隔符字符串
format顯示在輸入框的時間格式字符串,默認(rèn)為HH:mm:ss
default-value設(shè)置選擇器打開時默認(rèn)顯示的時間時間對象
prefix-icon設(shè)置頭部圖標(biāo)字符串
clear-icon自定義清空圖標(biāo)字符串
disabledHours禁止選擇某些小時函數(shù)
disabledMinutes禁止選擇某些分鐘函數(shù)
disabledSeconds禁止選擇某些秒函數(shù)
change用戶選擇的值發(fā)生變化時觸發(fā)函數(shù)
blur輸入框失去焦點時觸發(fā)函數(shù)
focus輸入框獲取焦點時觸發(fā)函數(shù)

下面的代碼將演示el-time-picker組件的基本使用方法。

     <el-time-picker
       :is-range="true"
       v-model="time"
       range-separator="~"
       :arrow-control="true"
       start-placeholder="開始時間"
       end-placeholder="結(jié)束時間"
     >
     </el-time-picker>

注意,el-time-picker創(chuàng)建的時間選擇器的樣式是表格類型的,Element Plus框架中還提供了一個el-time-select組件,這個組件渲染出的選擇器是列表樣式的。

  <el-time-select
    v-model="value"
    style="width: 240px"
    start="08:30"
    step="00:15"
    end="18:30"
    placeholder="Select time"
  />

2.2、日期選擇器

el-time-picker提供了對時間選擇的支持,如果還要選擇日期,可以使用el-date-picker組件。此組件會渲染出一個日歷視圖,用戶可以在日歷視圖上方便地進行日期選擇。el-data-picker組件的常用屬性列舉如表所示。

屬性意義
readonly設(shè)置是否只讀布爾值
disabled設(shè)置是否禁用布爾值
editable設(shè)置本文框是否可編輯布爾值
clearable設(shè)置是否清晰顯示按鈕布爾值
size設(shè)置輸入框組件的尺寸large
small
default
placeholder設(shè)置輸入框的占位內(nèi)容字符串
start-placeholder在范圍選擇模式下,設(shè)置起始日期的占位內(nèi)容字符串
end-placeholder在范圍選擇模式下,設(shè)置結(jié)束日期的占位內(nèi)容字符串
type日歷的類型year
month
date
dates
week
datetime
datetimerange
daterange
daterange
monthrange
format日期的格式字符串,默認(rèn)為YYYY-MM-DD
range-separator設(shè)置分隔符字符串
default-value設(shè)置默認(rèn)日期Date對象
prefix-icon設(shè)置頭部圖標(biāo)字符串
clear-icon自定義清空圖標(biāo)字符串
validate-event輸入時是否觸發(fā)表單的校驗布爾值
disabledDatte設(shè)置需要禁用的日期函數(shù)
change用戶選擇的值發(fā)生變化時觸發(fā)函數(shù)
blur輸入框失去焦點時觸發(fā)函數(shù)
focus輸入框獲取焦點時觸發(fā)函數(shù)

el-data-picker組件的簡單用法示例如下:

     <el-date-picker
       v-model="date"
       type="daterange"
       range-separator="至"
       start-placeholder="開始日期"
       end-placeholder="結(jié)束日期"
       >
     </el-date-picker>

注意,當(dāng)el-data-picker組件的type屬性設(shè)置為datatime時,它同時支持選擇日期和時間,使用非常方便。

2.3、顏色選擇器

顏色選擇器能夠提供一個調(diào)色板組件,用戶可以方便地在調(diào)色板上進行顏色的選擇。在一些場景下,如果頁面支持用戶進行顏色定制,可以使用顏色選擇器組件。顏色選擇器使用el-color-picker創(chuàng)建,常用屬性列舉如表所示。

屬性意義
disabled設(shè)置是否禁用布爾值
size設(shè)置尺寸large
small
default
show-alpha設(shè)置是否支持透明度選擇布爾值
color-format設(shè)置顏色格式hsl
hsv
hex
rgb
predefine設(shè)置預(yù)定義顏色數(shù)組

顏色選擇器的簡單使用示例如下:

     <el-color-picker :show-alpha="true" v-model="color"></el-color-picker>

3、提示類組件

Element Plus框架中提供了許多提示類的組件,這類組件在實際開發(fā)中應(yīng)用非常頻繁。當(dāng)我們需要對某些用戶的操作做出提示時,就可以使用這類組件。Element Plus框架中提供的提示類組件交互非常友好,主要包括警告組件、加載提示組件、消息提醒組件、通知和彈窗組件等。

3.1、警告組件

警告組件用來在頁面上展示重要的提示信息,頁面產(chǎn)生錯誤、用戶交互處理產(chǎn)生失敗等場景都可以使用警告組件來提示用戶。警告組件使用el-alert創(chuàng)建,有4種類型,分別可以使用在操作成功提示、普通信息提示、行為警告提示和操作錯誤提示場景下。

el-alert警告組件的常用屬性列舉如表所示。

屬性意義
title設(shè)置標(biāo)題字符串
type設(shè)置類型success
warning
info
error
description設(shè)置描述文案字符串
closeable設(shè)置是否可以關(guān)閉提示布爾值
center設(shè)置文本是否居中顯示布爾值
close-text自定義關(guān)閉按鈕的文本字符串
show-icon設(shè)置是否顯示圖標(biāo)布爾值
effect設(shè)置主題light
dark
close關(guān)閉提示時觸發(fā)的事件函數(shù)

下面的代碼將演示不同類型的警告提示樣式。

     <el-alert title="成功提示的文案" type="success"> </el-alert>
     <br />
     <el-alert title="消息提示的文案" type="info"> </el-alert>
     <br />
     <el-alert title="警告提示的文案" type="warning"> </el-alert>
     <br />
     <el-alert title="錯誤提示的文案" type="error"> </el-alert>


單擊提示欄上的“關(guān)閉”按鈕,提示欄會自動被消除。

注意,el-alert是一種常駐的提示組件,除非用戶手動單擊“關(guān)閉”按鈕,否則提示框不會自動關(guān)閉。

3.2、消息提示

3.2.1、簡單提示ElMessage

Element Plus中提供了主動觸發(fā)消息提示的方法,當(dāng)觸發(fā)消息提示時,頁面頂部會出現(xiàn)一個提示欄,展示3秒后自動消失。簡單示例如下:

     <el-button @click="popTip">彈出信息提示</el-button>

實現(xiàn)popTip方法如下:

<script setup>
  import { ref, watch } from 'vue'
  import {ElMessage} from 'element-plus'
  function popTip() {
    ElMessage({
      message: '提示內(nèi)容',
      type: 'warning'
    })
  }
</script>

ELMessage是Element Plus中內(nèi)置的方法,將其引入后可以直接使用。此方法的可配置參數(shù)列舉如表所示。

參數(shù)名意義
message設(shè)置提示的消息文字字符串或VNode
type設(shè)置提示組件的類型success
warning
info
error
duration設(shè)置展示時間數(shù)值,單位為毫秒,默認(rèn)為3000
showClose是否展示關(guān)閉按鈕布爾值
center設(shè)置文字是否居中布爾值
onClose提示欄關(guān)閉時回調(diào)的函數(shù)函數(shù)
offset設(shè)置出現(xiàn)提示欄的位置距離窗口頂部的偏移量數(shù)值

3.2.2、復(fù)雜提示ElMessageBox

ELMessage方法適用于對用戶進行簡單提示的場景,如果需要進行用戶交互,則Element Plus中提供了另一個ELMessageBox方法,此方法類似于系統(tǒng)的alert、confirm和prompt方法,可以進行用戶交互。示例代碼如下:

<script setup>
  import { ref, watch } from 'vue'
  import {ElMessage, ElMessageBox} from 'element-plus'
  function popTip() {
    ElMessageBox({
      title: '提示',
      message: '詳細的提示內(nèi)容',
      type: 'warning',
      showCancelButton: true,
      showConfirmButton: true,
      showInput: true
    })
  }
</script>

ELMessageBox方法的可配置參數(shù)列舉如表所示。

參數(shù)名意義
title設(shè)置提示框標(biāo)題字符串
message設(shè)置提示框展示的信息字符串
type設(shè)置提示框類型success
info
warning
error
callback用戶交互的回調(diào),當(dāng)用戶單擊提示框上的按鈕時觸發(fā)函數(shù)
showClose設(shè)置是否展示關(guān)閉按鈕布爾值
beforeClose提示框關(guān)閉前的回調(diào)函數(shù)
lockScroll是否在提示框出現(xiàn)時將頁面滾動鎖定布爾值
showCancelButton設(shè)置是否顯示取消按鈕布爾值
showConfirmButton設(shè)置是否顯示確認(rèn)按鈕布爾值
cancelButtonText自定義取消按鈕文本字符串
confirmButtonText自定義確認(rèn)按鈕的文本字符串
closeOnClickModal設(shè)置是否可以通過單擊遮罩關(guān)閉當(dāng)前的提示框布爾值
closeOnPressEscape設(shè)置是否可以通過按ESC鍵來關(guān)閉當(dāng)前提示框布爾值
showInput設(shè)置是否展示輸入框布爾值
inputPlaceholder設(shè)置輸入框的占位文案字符串
inputValue設(shè)置輸入框的初始文案字符串
inputValidator設(shè)置輸入框的校驗方法函數(shù)
inputErrorMessage設(shè)置校驗不通過時展示的文案字符串
center設(shè)置布局是否居中布爾值
roundButton設(shè)置是否使用圓角按鈕布爾值

3.3、通知組件

通知用來全局地進行系統(tǒng)提示,可以像消息提醒一樣出現(xiàn)一定時間后自動關(guān)閉,也可以像提示欄那樣常駐,只有用戶手動才能關(guān)閉。在Vue組件中,可以直接調(diào)用方法EINotification來觸發(fā)通知,常用的參數(shù)定義列舉如表所示。

參數(shù)名意義
title設(shè)置通知的標(biāo)題字符串
message設(shè)置通知的內(nèi)容字符串
type設(shè)置通知的樣式success
warning
info
error
duration設(shè)置通知的顯示時間數(shù)值,若設(shè)置為0,則不會自動消失
position設(shè)置通知的彈出位置top-right
top-left
bottom-right
bottom-left
showClose設(shè)置是否展示關(guān)閉按鈕布爾值
onClose通知關(guān)閉時回調(diào)的函數(shù)函數(shù)
offset設(shè)置通知距離頁面邊緣的偏移量數(shù)值

示例代碼如下:

<script setup>
  import { ElNotification } from 'element-plus'
  function notify() {
    ElNotification({
      title: '通知標(biāo)題',
      message: '通知內(nèi)容',
      type: 'success',
      duration: 3000,
      position: 'top-right'
    })
  }
</script>
<template>
  <div style="margin: 20px;">
     <el-button @click="notify">彈出通知</el-button>
  </div>
</template>

4、數(shù)據(jù)承載相關(guān)組件

4.1、表格組件

表格組件能夠承載大量的數(shù)據(jù)信息。因此,在實際開發(fā)中,需要展示大量數(shù)據(jù)的頁面都會使用到表格組件。在Element Plus中,使用el-table與el-table-column組件來構(gòu)建表格。首先,編寫如下示例代碼:

<template>
  <div style="margin: 20px;">
     <el-table :data="tableData">
       <el-table-column prop="name" label="姓名"></el-table-column>
       <el-table-column prop="age" label="年齡"></el-table-column>
       <el-table-column prop="subject" label="科目"></el-table-column>
     </el-table>
  </div>
</template>

tableData數(shù)據(jù)結(jié)構(gòu)如下:

<script setup>
  import {ref} from 'vue';
  const tableData = [
    {name: '小王', age: 29, subject: 'Java'},
    {name: '小李', age: 30, subject: 'C++'},
    {name: '小張', age: 28, subject: 'JavaScript'}
  ]
</script>

其中,el-table-column用來定義表格中的每一列,其prop屬性設(shè)置此列要渲染的數(shù)據(jù)對應(yīng)表格數(shù)據(jù)中的鍵名,label屬性設(shè)置列頭信息,代碼運行效果如圖所示。

el-table和el-table-column組件提供了非常多的屬性供開發(fā)者進行定制,列舉如下。

el-table組件的常用屬性表所示。

屬性意義
data設(shè)置列表的數(shù)據(jù)源數(shù)組
height設(shè)置表格的高度,如果設(shè)置了這個屬性,表格頭會被固定數(shù)值
max-height設(shè)置表格的最大高度數(shù)值
stripe設(shè)置表格是否有斑馬紋,即相鄰的行有顏色差異布爾值
border設(shè)置表格是否有邊框布爾值
size設(shè)置表格的尺寸small
large
default
fit設(shè)置列的寬度是否自適應(yīng)布爾值
show-header設(shè)置是否顯示表頭布爾值
highlight-current-row設(shè)置是否高亮顯示當(dāng)前行布爾值
row-class-name用來設(shè)置行的class屬性,需要設(shè)置為回調(diào)函數(shù)Function({row,rowIndex)可以指定不同的行使用不同的className,返回字符串
row-style用來設(shè)置行的style屬性,需要設(shè)置為回調(diào)函數(shù)Function(frow,rowIndex)可以指定不同的行使用不同的style,返回樣式對象
cell-class-name用來設(shè)置具體單元格的classNameFunction(frow,column,rowIndex,columnIndex)
cell-style用來設(shè)置具體單元格的style屬性Function(frow,column,rowIndex,columnIndex)
header-row-class-name設(shè)置表頭行的classNameFunction(row,rowIndex)
header-row-style設(shè)置表頭行的style屬性Function(row,rowIndex)
header-cell-class-name設(shè)置表頭單元格的classNameFunction(frow.column.rowIndex.columnIndex)
header-cell-style設(shè)置表頭單元格的style屬性Function(frow.column.rowIndex,columnIndex;)
row-key用來設(shè)置行的key值Function(row)
empty-text設(shè)置空數(shù)據(jù)時展示的占位內(nèi)容字符串
default-expand-all設(shè)置是否默認(rèn)展開所有行布爾值
expand-row-keys設(shè)置要默認(rèn)展開的行數(shù)組
default-sort設(shè)置排序方式ascending:升序
descending:降序
show-summary是否在表格尾部顯示合計行布爾值
sum-text設(shè)置合計行第一列的文本字符串
summary-method用來定義合計方法Function({columns,data})
span-method用來定義合并行或列的方法Function(row,column,rowIndex, columnIndex)
lazy是否對子節(jié)點進行懶加載布爾值
load數(shù)據(jù)懶加載方法函數(shù)
tree-props渲染嵌套數(shù)據(jù)的配置選項對象
select選中某行數(shù)據(jù)時回調(diào)的函數(shù)函數(shù)
select-all全選后回調(diào)的函數(shù)函數(shù)
selection-change選擇項發(fā)生變化時回調(diào)的函數(shù)函數(shù)
cell-mouse-enter鼠標(biāo)覆蓋到單元格時回調(diào)的函數(shù)函數(shù)
cell-mouse-leave鼠標(biāo)離開單元格時回調(diào)的函數(shù)函數(shù)
cell-click當(dāng)某個單元格被單擊時回調(diào)的函數(shù)函數(shù)
cell-dblclick當(dāng)某個單元格被雙擊時回調(diào)的函數(shù)函數(shù)
row-click當(dāng)某一行被單擊時回調(diào)的函數(shù)函數(shù)
row-contextmenu當(dāng)某一行被右擊時回調(diào)的函數(shù)函數(shù)
row-dblclick當(dāng)某一行被雙擊時回調(diào)的函數(shù)函數(shù)
header-click表頭被單擊時回調(diào)的函數(shù)函數(shù)
header-contextmenu表頭被右擊時回調(diào)的函數(shù)函數(shù)
sort-change排序發(fā)生變化時回調(diào)的函數(shù)函數(shù)
filter-change篩選條件發(fā)生變化時回調(diào)的函數(shù)函數(shù)
current-change表格當(dāng)前行發(fā)生變化時回調(diào)的函數(shù)函數(shù)
header-dragend拖動表頭改變列寬度時回調(diào)的函數(shù)函數(shù)
expand-change當(dāng)某一行展開會關(guān)閉時回調(diào)的函數(shù)函數(shù)

通過表中的屬性列表可以看到,el-table組件非常強大,除能夠渲染常規(guī)的表格外,還支持行列合并、合計、行展開、多選、排序和篩選等,這些功能很多需要結(jié)合el-table-column來使用。

el-table-column組件的常用屬性列舉如表所示。

屬性意義
type設(shè)置當(dāng)前列的類型,默認(rèn)無類型,則為常規(guī)的數(shù)據(jù)列selection:多選類型
index:標(biāo)號類型
expand:展開類型
index自定義索引Function(index)
column-key設(shè)置列的key值,用來進行篩選字符串
label設(shè)置顯示的標(biāo)題字符串
prop設(shè)置此列對應(yīng)的數(shù)據(jù)字段字符串
width設(shè)置列的寬度字符串
min-width設(shè)置列的最小寬度字符串
fixed設(shè)置此列是否固定,默認(rèn)不固定left:固定左側(cè)
right:固定右側(cè)
render-header使用函數(shù)來渲染列的標(biāo)題部分Function({column,Sindex }
sortable設(shè)置對應(yīng)列是否可排序布爾值
sort-method自定義數(shù)據(jù)排序的方法函數(shù)
sort-by設(shè)置以哪個字段進行排序字符串
resizable設(shè)置是否可以通過拖動來改變此列的寬度布爾值
filter-method自定義過濾數(shù)據(jù)的方法函數(shù)

4.2、導(dǎo)航菜單組件

導(dǎo)航組件為頁面提供導(dǎo)航功能的菜單,導(dǎo)航組件一般出現(xiàn)在頁面的頂部或側(cè)面,單擊導(dǎo)航組件上不同的欄目頁面會對應(yīng)跳轉(zhuǎn)到指定的頁面。在Element Plus中,使用el-menu、el-sub-menu與el-menu-item來定義導(dǎo)航組件。

下面的示例代碼將演示頂部導(dǎo)航的基本使用方法。

<template>
  <div style="margin: 20px;">
    <el-menu mode="horizontal">
      <el-menu-item index="1">首頁</el-menu-item>
      <el-sub-menu index="2">
        <template #title>廣場</template>
        <el-menu-item index="2-1">音樂</el-menu-item>
        <el-menu-item index="2-2">視頻</el-menu-item>
        <el-menu-item index="2-3">游戲</el-menu-item>
        <el-sub-menu index="2-4">
          <template #title>體育</template>
          <el-menu-item index="2-4-1">籃球</el-menu-item>
          <el-menu-item index="2-4-2">足球</el-menu-item>
          <el-menu-item index="2-4-3">排球</el-menu-item>
        </el-sub-menu>
      </el-sub-menu>
      <el-menu-item index="3" :disabled="true">個人中心</el-menu-item>
      <el-menu-item index="4">設(shè)置</el-menu-item>
    </el-menu>
  </div>
</template>

如以上代碼所示,el-sub-menu的title插槽用來定義子菜單的標(biāo)題,其內(nèi)部可以繼續(xù)嵌套子菜單組件,el-menu組件的mode屬性可以設(shè)置導(dǎo)航的布局方式為水平或豎直。運行上述代碼,效果如圖所示。

el-menu組件非常簡潔,提供的可配置屬性不多,列舉如表所示。

屬性意義
mode設(shè)置菜單模式vertical:豎直
horizontal:.水平
collapse是否水平折疊收起菜單,只在vertical模式下有效布爾值
background-color設(shè)置菜單的背景色字符串
text-color設(shè)置菜單的文字顏色字符串
active-text-color設(shè)置當(dāng)前菜單激活時的文字顏色字符串
default-active設(shè)置默認(rèn)激活的菜單字符串
default-openeds設(shè)置默認(rèn)展開的子菜單,需要設(shè)置為子菜單index的列表數(shù)組
unique-opened是否只保持一個子菜單展開布爾值
menu-trigger設(shè)置子菜單展開的觸發(fā)方式,只在horizontal模式下有效hover:鼠標(biāo)覆蓋展開
click:鼠標(biāo)單擊展開
router是否使用路由模式布爾值
collapse-transition是否開啟折疊動畫布爾值
select選中某個菜單項時回調(diào)的函數(shù)函數(shù)
open子菜單展開時回調(diào)的函數(shù)函數(shù)
close子菜單收起時回調(diào)的函數(shù)函數(shù)

el-sub-menu組件的常用屬性列舉如表所示。

屬性意義
index唯一標(biāo)識字符串
show-timeout設(shè)置展開子菜單的延時數(shù)值,單位為毫秒
hide-timeout設(shè)置收起子菜單的延時數(shù)值,單位為毫秒
disabled設(shè)置是否禁用布爾值

導(dǎo)航組件最重要的作用是進行頁面管理,通常我們會結(jié)合路由組件進行使用,通過導(dǎo)航與路由,頁面的跳轉(zhuǎn)管理會非常簡單方便。

4.3、標(biāo)簽頁組件

標(biāo)簽組件用來將頁面分割成幾個部分,單擊不同的標(biāo)簽可以對頁面內(nèi)容進行切換。使用el-tabs創(chuàng)建標(biāo)簽頁組件的示例代碼如下:

<template>
  <div style="margin: 20px;">
     <el-tabs type="border-card">
       <el-tab-pane label="頁面1" name="1">頁面1</el-tab-pane>
       <el-tab-pane label="頁面2" name="2">頁面2</el-tab-pane>
       <el-tab-pane label="頁面3" name="3">頁面3</el-tab-pane>
       <el-tab-pane label="頁面4" name="4">頁面4</el-tab-pane>
     </el-tabs>
  </div>
</template>

代碼運行效果如圖所示,單擊不同的標(biāo)簽將會切換不同的內(nèi)容。

el-tabs組件的常用屬性列表如表所示。

屬性意義
closable設(shè)置標(biāo)簽是否可關(guān)閉布爾值
addable標(biāo)簽是否可增加布爾值
editable標(biāo)簽是否可編輯(增加和刪除)布爾值
tab-position標(biāo)簽欄所在的位置top
right
bottom
left
stretch設(shè)置標(biāo)簽是否自動撐開布爾值
before-leave當(dāng)標(biāo)簽即將切換時回調(diào)的函數(shù)函數(shù)
tab-click當(dāng)某個標(biāo)簽被選中時回調(diào)的函數(shù)函數(shù)
tab-remove當(dāng)某個標(biāo)簽被移除時回調(diào)的函數(shù)函數(shù)
tab-add單擊新增標(biāo)簽按鈕時回調(diào)的函數(shù)函數(shù)
edit單擊Tab的新增或移除按鈕時回調(diào)的函數(shù)函數(shù)

el-tab-pane用來定義具體的每個標(biāo)簽卡,常用屬性列舉如表所示。

屬性意義
label設(shè)置標(biāo)簽卡的標(biāo)題字符串
disabled設(shè)置當(dāng)前標(biāo)簽卡是否禁用布爾值
name與標(biāo)簽卡綁定的value數(shù)據(jù)字符串
closable設(shè)置此標(biāo)簽卡布爾值
lazy設(shè)置標(biāo)簽是否延遲渲染布爾值

對于el-tab-pane組件,可以通過其內(nèi)部的label插槽來自定義標(biāo)題內(nèi)容。

4.4、抽屜組件

抽屜組件是一種全局的彈窗組件,在流行的網(wǎng)頁應(yīng)用中非常常見。當(dāng)用戶打開抽屜組件時,會從頁面的邊緣滑出一個內(nèi)容面板,我們可以靈活地定制內(nèi)容面板的內(nèi)容來實現(xiàn)產(chǎn)品的需求。示例代碼如下:

<script setup>
  import {ref} from 'vue';
  const drawer = ref(false);
</script>
<template>
  <div style="margin: 20px;">
    <div style="margin:300px">
      <el-button @click="drawer = true" type="primary">
        點我打開抽屜
      </el-button>
    </div>
    <el-drawer
      title="抽屜面板的標(biāo)題"
      v-model="drawer"
      direction="ltr">
      抽屜面板的內(nèi)容
    </el-drawer>
  </div>
</template>

注意,不要忘記在組件的data選項中定義drawer屬性控制抽屜的開關(guān)。在上述代碼中,我們使用按鈕控制抽屜的打開,el-drawer組件的direction屬性可以設(shè)置抽屜的打開方向。運行代碼,效果如圖所示。

4.5、布局容器組件

布局容器用來方便、快速地搭建頁面的基本結(jié)構(gòu)。通過觀察當(dāng)前流行的網(wǎng)站頁面,可以發(fā)現(xiàn),它們從布局結(jié)構(gòu)上都是十分相似的。一般都是由頭部模塊、尾部模塊、側(cè)欄模塊和主內(nèi)容模塊構(gòu)成。

在Element Plus中,使用el-container創(chuàng)建布局容器,其內(nèi)部的子元素一般包括el-header、el-aside、el-main或el-footer。其中:

  • el-header定義頭部模塊
  • el-aside定義側(cè)邊欄模塊
  • el-main定義主內(nèi)容模塊
  • el-footer定義尾部模塊

el-container組件可配置的屬性只有一個,如表所示。

屬性意義
direction設(shè)置子元素的排列方式horizontal:水平
vertical:豎直

el-header組件和el-footer組件默認(rèn)會水平撐滿頁面,可以設(shè)置其渲染高度,如表所示。

屬性意義
height設(shè)置高度字符串

el-aside組件的默認(rèn)高度會撐滿頁面,可以設(shè)置其寬度,如表所示。

屬性意義
width設(shè)置寬度字符串

示例代碼如下:

<template>
  <el-container>
    <el-header height="80px" style="background-color: gray;">Header</el-header>
    <el-container>
      <el-aside width="200px" style="background-color: red;">Aside</el-aside>
      <el-container>
        <el-main>
          <div style="height: 300px; background-color: #f1f1f1;">內(nèi)容</div>
        </el-main>
        <el-footer height="80px" style="background-color: gray;">Footer</el-footer>
      </el-container>
    </el-container>
  </el-container>
</template>

5、綜合示例

5.1、示例一

頁面設(shè)計如下:頁面由三部分組成。首先是頂部的標(biāo)題欄,用于展示當(dāng)前頁面的名稱。其次是左側(cè)的側(cè)邊欄,用于選擇年級和班級。中間的內(nèi)容區(qū)域進一步分為兩個部分,上半部分是標(biāo)題區(qū),顯示一些控制按鈕,例如“新增學(xué)生信息”和“搜索學(xué)生信息”?;下半部分則展示當(dāng)前班級的完整學(xué)生列表,包括學(xué)生的姓名、年齡、性別以及信息添加的日期。頁面布局的草圖如圖所示。

<script setup>
  import {ref} from 'vue'
  const desc = ref('七年級1班學(xué)生統(tǒng)計')
  const stus = ref([
    {name: '小王', age: 14, sex: '男', date: '2020年8月15日'},
    {name: '小張', age: 15, sex: '男', date: '2020年5月15日'},
    {name: '小秋', age: 15, sex: '女', date: '2020年8月15日'},
  ])
  function selectFunc(index) {
    let strs = ['七', '八', '九']
    let rank = strs[Math.floor((index - 1) / 3)]
    desc.value = `${rank}年級${((index - 1) % 3) + 1}班學(xué)生統(tǒng)計`
  }
</script>
<style lang="css" scoped>
  .header{
    font-style: 30px;
    line-height: 80px;
    background-color: f1f1f1;
  }
  .aside{
    background-color: wheat;
    height: 600px;
  }
  .subHeader{
    background-color: cornflowerblue;
  }
  .desc{
    font-style: 25px;
    line-height: 80px;
    color: white;
    width: 800px;
  }
  .content{
    height: 410px;
  }
  .footer{
    height: 410px;
  }
  .footer{
    background-color: dimgray;
    color: white;
    font-style: 17px;
    line-height: 30px;
  }
</style>
<template>
  <el-container>
    <el-header height="80px" style="padding: 0">
      <div class="header">教務(wù)系統(tǒng)學(xué)生管理</div>
    </el-header>
    <el-container>
      <el-aside width="200px">
        <el-menu class="aside" @select="selectFunc" default-avtive="1" :unique-opened="true">
          <el-sub-menu index="1">
            <template #title>
              <span>七年級</span>
            </template>
            <el-menu-item index="1">1班</el-menu-item>
            <el-menu-item index="2">2班</el-menu-item>
            <el-menu-item index="3">3班</el-menu-item>
          </el-sub-menu>
          <el-sub-menu index="2">
            <template #title>
              <span>八年級</span>
            </template>
            <el-menu-item index="4">1班</el-menu-item>
            <el-menu-item index="5">2班</el-menu-item>
            <el-menu-item index="6">3班</el-menu-item>
          </el-sub-menu>
          <el-sub-menu index="3">
            <template #title>
              <span>九年級</span>
            </template>
            <el-menu-item index="7">1班</el-menu-item>
            <el-menu-item index="8">2班</el-menu-item>
            <el-menu-item index="9">3班</el-menu-item>
          </el-sub-menu>
        </el-menu>
      </el-aside>
      <el-container>
        <el-header height="80px" style="padding:0;margin:0">
          <el-container class="subHeader">
            <div class="desc">{{ desc }}</div>
            <el-button style="width: 100px; height:30px; margin:20px;">新增記錄</el-button>
          </el-container>
        </el-header>
        <el-main style="margin: 0; padding: 0">
          <div class="content">
            <el-table :data="stus">
              <el-table-column prop="name" label="姓名"></el-table-column>
              <el-table-column prop="age" label="年齡"></el-table-column>
              <el-table-column prop="sex" label="性別"></el-table-column>
              <el-table-column prop="date" label="錄入日期"></el-table-column>
            </el-table>
          </div>
        </el-main>
        <el-footer height="30px" class="footer">Vue框架搭建,Element Plus提供組件支持</el-footer>
      </el-container>
    </el-container>
  </el-container>
</template>

5.2、示例二

  1. 開發(fā)一個用戶列表組件,用于展示用戶數(shù)據(jù)。
  2. 實現(xiàn)用戶添加功能。
  3. 實現(xiàn)用戶刪除功能。
<template>
    <el-button @click="addUser">添加用戶</el-button>
    <el-table :data="users">
        <el-table-column prop="name" label="姓名"></el-table-column>
        <el-table-column prop="age" label="年齡"></el-table-column>
        <el-table-column label="操作">
            <template #default="{$index}">
                <el-button @click="deleteUser({$index})">刪除</el-button>
            </template>
        </el-table-column>
    </el-table>
</template>
<script setup>
    import {ref} from 'vue'
    const users = ref([
        {name: '張三', age: 20},
        {name: '李四', age: 25}
    ])
    function deleteUser(user) {
        //刪除用戶的邏輯
        users.value.splice(indexedDB, 1)
    }
    function addUser() {
        //添加用戶的邏輯
        users.value.push({name: '新用戶', age: 30})
    }
</script>

到此這篇關(guān)于Vue3 UI組件庫Element Plus實例詳解的文章就介紹到這了,更多相關(guān)vue3 ui組件庫Element Plus內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue項目調(diào)試的三種方法總結(jié)

    vue項目調(diào)試的三種方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于vue項目調(diào)試的三種方法,大家可以根據(jù)需要選擇調(diào)試方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Vue實現(xiàn)點擊導(dǎo)航欄當(dāng)前標(biāo)簽后變色功能

    Vue實現(xiàn)點擊導(dǎo)航欄當(dāng)前標(biāo)簽后變色功能

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)點擊導(dǎo)航欄當(dāng)前標(biāo)簽后變色功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Vue filter 過濾器、以及在table中的使用介紹

    Vue filter 過濾器、以及在table中的使用介紹

    這篇文章主要介紹了Vue filter 過濾器、以及在table中的使用介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue子組件與父組件詳細解析

    Vue子組件與父組件詳細解析

    這篇文章主要介紹的是Vue子組件與父組件,什么是父組件,什么是子組件很多時候面對這個問題我們都會有所混淆,下面文章我們就來詳細介紹,需要的朋友可以參考一下
    2021-10-10
  • Vue.js 圖標(biāo)選擇組件實踐詳解

    Vue.js 圖標(biāo)選擇組件實踐詳解

    這篇文章主要介紹了Vue.js 圖標(biāo)選擇組件實踐詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue3自定義確認(rèn)密碼匹配驗證規(guī)則的操作代碼

    vue3自定義確認(rèn)密碼匹配驗證規(guī)則的操作代碼

    這篇文章主要介紹了vue3自定義確認(rèn)密碼匹配驗證規(guī)則的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • 基于Vue2實現(xiàn)簡易的省市區(qū)縣三級聯(lián)動組件效果

    基于Vue2實現(xiàn)簡易的省市區(qū)縣三級聯(lián)動組件效果

    這是一個基于Vue2的簡易省市區(qū)縣三級聯(lián)動組件,可以控制只顯示省級或只顯示省市兩級,可設(shè)置默認(rèn)值等。提供原始省市縣代碼和名稱數(shù)據(jù),適用于各種有關(guān)城市區(qū)縣的應(yīng)用。需要的朋友可以參考下
    2018-11-11
  • VUE 實現(xiàn)復(fù)制內(nèi)容到剪貼板的兩種方法

    VUE 實現(xiàn)復(fù)制內(nèi)容到剪貼板的兩種方法

    這篇文章主要介紹了VUE 實現(xiàn)復(fù)制內(nèi)容到剪貼板功能,本文通過兩種方法,給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-04-04
  • 老生常談vue的生命周期

    老生常談vue的生命周期

    這篇文章主要為大家詳細介紹了vue的生命周期,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • vue3如何通過provide和inject實現(xiàn)多層級組件通信

    vue3如何通過provide和inject實現(xiàn)多層級組件通信

    這篇文章主要介紹了vue3如何通過provide和inject實現(xiàn)多層級組件通信,本文通過實例代碼給大家講解的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11

最新評論

新疆| 望都县| 大余县| 滨州市| 布拖县| 呼和浩特市| 高阳县| 柘荣县| 永清县| 太原市| 太仓市| 萝北县| 普格县| 竹山县| 原阳县| 措勤县| 盈江县| 临武县| 江山市| 双辽市| 遵化市| 米易县| 延庆县| 涡阳县| 敦煌市| 耿马| 修文县| 时尚| 浦江县| 洪湖市| 九龙坡区| 宾川县| 涡阳县| 海丰县| 色达县| 华亭县| 信阳市| 泌阳县| 南宁市| 固始县| 正安县|