vue基于el-table拓展之table-plus組件
目的
- 配置型表格多級(jí)表頭/自定義表頭、形數(shù)據(jù)與懶加載用法等支持el-table大部分屬性和用法
- 內(nèi)置loading加載
- 內(nèi)置合并單元格
- 默認(rèn)跨頁(yè)選擇
- 自定義列模板
- 劃重點(diǎn):后面tableSmart的基礎(chǔ)組件
源碼
- 包裹層TableWrap.vue
<template>
<div :class="s.tableWrap">
<slot></slot>
<div :class="s.noData" v-if="!loading && list.length === 0">
<div>
<d-icon :class="s.icon" type="no-data"></d-icon>
<div :class="s.text">{{ text }}</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
list: {
type: Array,
default: [],
},
text: {
type: String,
default: '搜索不到您想要的數(shù)據(jù)~換個(gè)條件試一下',
},
loading: {
type: Boolean,
default: false,
},
},
data() {
return {};
},
};
</script>
<style lang="scss" module="s">
.tableWrap {
position: relative;
}
.noData {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
> div {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
}
.icon {
font-size: 60px;
color: $color-primary;
}
.text {
color: #80848f;
font-size: 14px;
margin: 8px 0 16px;
}
}
</style>- 核心拓展
<script>
import VTableWrap from './TableWrap.vue';
export default {
components: {
VTableWrap,
},
props: {
spanConfig: {
type: Object,
default: () => ({
propList: [],
children: 'children',
key: '',
}),
},
},
data() {
return {
domTable: '',
loading: {},
};
},
computed: {
list() {
if (this.spanConfig.key) {
const arr = [];
this.$attrs.data.forEach((item) => {
if (item[this.spanConfig.children] && item[this.spanConfig.children].length) {
item[this.spanConfig.children].forEach((child) => {
arr.push({
...item,
...child,
});
});
} else {
arr.push({
...item,
});
}
});
return arr;
}
return this.$attrs.data;
},
// 合并多少個(gè)計(jì)算
spanArr() {
let contactDot = 0;
const spanArr = [];
this.list.forEach((item, index) => {
if (index === 0) {
spanArr.push(1);
} else {
if (item[this.spanConfig.key] === this.list[index - 1][this.spanConfig.key]) {
spanArr[contactDot] += 1;
spanArr.push(0);
} else {
spanArr.push(1);
contactDot = index;
}
}
});
return spanArr;
},
// 取要合并的index
spanIndex() {
const propList = this.$attrs.columns.map((item) => item.prop || item.property);
return this.spanConfig.propList.map((prop) => (
propList.findIndex((key) => key === prop)
));
},
},
mounted() {
this.$nextTick(() => {
// 此處勿使用document 會(huì)區(qū)找尋windows 作用域下生成的所有dom元素
this.domTable = this.$refs.table.$el.querySelector('.el-table__body');
if (this.domTable) {
this.loading = this.$loading({
lock: true,
customClass: this.s.customLoding,
text: '',
spinner: 'el-icon-loading',
target: this.$refs.table.$el.querySelector('.el-table__body'),
});
// 加載因?yàn)?render函數(shù)渲染執(zhí)行 順序 此處需關(guān)閉
if (this.$attrs.loading === undefined) {
this.loading.close();
} else {
this.loading.visible = this.$attrs.loading;
}
}
});
},
render(createElement) {
const { columns = [] } = this.$attrs;
// 加載
this.$nextTick(() => {
this.$refs.table.doLayout();
if (this.domTable) {
if (this.$attrs.loading === undefined) {
this.loading.close();
} else {
this.loading.visible = this.$attrs.loading;
}
}
});
// 加上遞歸
const tableColumn = (item, index) => createElement(
'el-table-column',
{
props: {
...item,
},
key: `${item.label}-${index}`,
scopedSlots: {
default: this.$scopedSlots[item.slotName] || '',
header: this.$scopedSlots[item.slotHeaderName] || '',
},
},
[
item.children
&& item.children.length
&& item.children.map((list, index) => tableColumn(list, index)),
],
);
const table = createElement(
'el-table',
{
ref: 'table',
props: {
headerRowClassName: 'custom-table-header',
'span-method': this.objectSpanMethod,
...this.$attrs,
data: this.list,
},
on: {
...this.$listeners,
},
scopedSlots: {
append: this.$scopedSlots.append,
},
},
[...columns.map((item, index) => tableColumn(item, index))],
);
return createElement('VTableWrap', {
props: {
text: this.$attrs.emptyText,
loading: this.$attrs.loading,
list: this.$attrs.data,
},
}, [table]);
},
methods: {
objectSpanMethod({
rowIndex,
columnIndex,
}) {
if (this.spanIndex.includes(columnIndex)) {
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col,
};
}
},
clearSelection() {
this.$refs.table.clearSelection();
},
toggleRowSelection(row, selected) {
this.$refs.table.toggleRowSelection(row, selected);
},
toggleAllSelection() {
this.$refs.table.toggleRowSelection();
},
toggleRowExpansion(row, expanded) {
this.$refs.table.toggleRowExpansion(row, expanded);
},
setCurrentRow(row) {
this.$refs.table.setCurrentRow(row);
},
clearSort() {
this.$refs.table.clearSort();
},
clearFilter(columnKey) {
this.$refs.table.clearFilter(columnKey);
},
doLayout() {
this.$refs.table.doLayout();
},
sort(prop, order) {
this.$refs.table.sort(prop, order);
},
},
};
</script>
<style lang="scss" module="s">
.customLoding {
right: 1px;
bottom: 1px;
height: 100%;
:global(.el-icon-loading){
display: none;
}
}
</style>文檔
TablePlus Attributes
| 參數(shù) | 說明 | 類型 | 可選值 | 默認(rèn)值 |
|---|---|---|---|---|
| data | 顯示的數(shù)據(jù) | array | — | — |
| height | Table 的高度,默認(rèn)為自動(dòng)高度。如果 height 為 number 類型,單位 px;如果 height 為 string 類型,則這個(gè)高度會(huì)設(shè)置為 Table 的 style.height 的值,Table 的高度會(huì)受控于外部樣式。 | string/number | — | — |
| max-height | Table 的最大高度。合法的值為數(shù)字或者單位為 px 的高度。 | string/number | — | — |
| stripe | 是否為斑馬紋 table | boolean | — | false |
| border | 是否帶有縱向邊框 | boolean | — | false |
| size | Table 的尺寸 | string | medium / small / mini | — |
| fit | 列的寬度是否自撐開 | boolean | — | true |
| show-header | 是否顯示表頭 | boolean | — | true |
| highlight-current-row | 是否要高亮當(dāng)前行 | boolean | — | false |
| current-row-key | 當(dāng)前行的 key,只寫屬性 | String,Number | — | — |
| row-class-name | 行的 className 的回調(diào)方法,也可以使用字符串為所有行設(shè)置一個(gè)固定的 className。 | Function({row, rowIndex})/String | — | — |
| row-style | 行的 style 的回調(diào)方法,也可以使用一個(gè)固定的 Object 為所有行設(shè)置一樣的 Style。 | Function({row, rowIndex})/Object | — | — |
| cell-class-name | 單元格的 className 的回調(diào)方法,也可以使用字符串為所有單元格設(shè)置一個(gè)固定的 className。 | Function({row, column, rowIndex, columnIndex})/String | — | — |
| cell-style | 單元格的 style 的回調(diào)方法,也可以使用一個(gè)固定的 Object 為所有單元格設(shè)置一樣的 Style。 | Function({row, column, rowIndex, columnIndex})/Object | — | — |
| header-row-class-name | 表頭行的 className 的回調(diào)方法,也可以使用字符串為所有表頭行設(shè)置一個(gè)固定的 className。 | Function({row, rowIndex})/String | — | — |
| header-row-style | 表頭行的 style 的回調(diào)方法,也可以使用一個(gè)固定的 Object 為所有表頭行設(shè)置一樣的 Style。 | Function({row, rowIndex})/Object | — | — |
| header-cell-class-name | 表頭單元格的 className 的回調(diào)方法,也可以使用字符串為所有表頭單元格設(shè)置一個(gè)固定的 className。 | Function({row, column, rowIndex, columnIndex})/String | — | — |
| header-cell-style | 表頭單元格的 style 的回調(diào)方法,也可以使用一個(gè)固定的 Object 為所有表頭單元格設(shè)置一樣的 Style。 | Function({row, column, rowIndex, columnIndex})/Object | — | — |
| row-key | 行數(shù)據(jù)的 Key,用來優(yōu)化 Table 的渲染;在使用 reserve-selection 功能與顯示樹形數(shù)據(jù)時(shí),該屬性是必填的。類型為 String 時(shí),支持多層訪問:user.info.id,但不支持 user.info[0].id,此種情況請(qǐng)使用 Function。 | Function(row)/String | — | — |
| empty-text | 空數(shù)據(jù)時(shí)顯示的文本內(nèi)容,也可以通過 slot="empty" 設(shè)置 | String | — | 暫無數(shù)據(jù) |
| default-expand-all | 是否默認(rèn)展開所有行,當(dāng) Table 包含展開行存在或者為樹形表格時(shí)有效 | Boolean | — | false |
| expand-row-keys | 可以通過該屬性設(shè)置 Table 目前的展開行,需要設(shè)置 row-key 屬性才能使用,該屬性為展開行的 keys 數(shù)組。 | Array | — | |
| default-sort | 默認(rèn)的排序列的 prop 和順序。它的prop屬性指定默認(rèn)的排序的列,order指定默認(rèn)排序的順序 | Object | order: ascending, descending | 如果只指定了prop, 沒有指定order, 則默認(rèn)順序是ascending |
| tooltip-effect | tooltip effect 屬性 | String | dark/light | |
| show-summary | 是否在表尾顯示合計(jì)行 | Boolean | — | false |
| sum-text | 合計(jì)行第一列的文本 | String | — | 合計(jì) |
| summary-method | 自定義的合計(jì)計(jì)算方法 | Function({ columns, data }) | — | — |
| span-method | 合并行或列的計(jì)算方法 | Function({ row, column, rowIndex, columnIndex }) | — | — |
| select-on-indeterminate | 在多選表格中,當(dāng)僅有部分行被選中時(shí),點(diǎn)擊表頭的多選框時(shí)的行為。若為 true,則選中所有行;若為 false,則取消選擇所有行 | Boolean | — | true |
| indent | 展示樹形數(shù)據(jù)時(shí),樹節(jié)點(diǎn)的縮進(jìn) | Number | — | 16 |
| lazy | 是否懶加載子節(jié)點(diǎn)數(shù)據(jù) | Boolean | — | — |
| load | 加載子節(jié)點(diǎn)數(shù)據(jù)的函數(shù),lazy 為 true 時(shí)生效,函數(shù)第二個(gè)參數(shù)包含了節(jié)點(diǎn)的層級(jí)信息 | Function(row, treeNode, resolve) | — | — |
| tree-props | 渲染嵌套數(shù)據(jù)的配置選項(xiàng) | Object | — | { hasChildren: 'hasChildren', children: 'children' } |
-分割線- | --- | --- | --- | --- |
| columns | 列表配置 | array | column | [] |
| spanConfig | 合并表格配置 | object | spanConfig | [] |
| slotName | 自定義插槽名字 | string | - | - |
TablePlus Events
| 事件名 | 說明 | 參數(shù) |
|---|---|---|
| select | 當(dāng)用戶手動(dòng)勾選數(shù)據(jù)行的 Checkbox 時(shí)觸發(fā)的事件 | selection, row |
| select-all | 當(dāng)用戶手動(dòng)勾選全選 Checkbox 時(shí)觸發(fā)的事件 | selection |
| selection-change | 當(dāng)選擇項(xiàng)發(fā)生變化時(shí)會(huì)觸發(fā)該事件 | selection |
| cell-mouse-enter | 當(dāng)單元格 hover 進(jìn)入時(shí)會(huì)觸發(fā)該事件 | row, column, cell, event |
| cell-mouse-leave | 當(dāng)單元格 hover 退出時(shí)會(huì)觸發(fā)該事件 | row, column, cell, event |
| cell-click | 當(dāng)某個(gè)單元格被點(diǎn)擊時(shí)會(huì)觸發(fā)該事件 | row, column, cell, event |
| cell-dblclick | 當(dāng)某個(gè)單元格被雙擊擊時(shí)會(huì)觸發(fā)該事件 | row, column, cell, event |
| row-click | 當(dāng)某一行被點(diǎn)擊時(shí)會(huì)觸發(fā)該事件 | row, column, event |
| row-contextmenu | 當(dāng)某一行被鼠標(biāo)右鍵點(diǎn)擊時(shí)會(huì)觸發(fā)該事件 | row, column, event |
| row-dblclick | 當(dāng)某一行被雙擊時(shí)會(huì)觸發(fā)該事件 | row, column, event |
| header-click | 當(dāng)某一列的表頭被點(diǎn)擊時(shí)會(huì)觸發(fā)該事件 | column, event |
| header-contextmenu | 當(dāng)某一列的表頭被鼠標(biāo)右鍵點(diǎn)擊時(shí)觸發(fā)該事件 | column, event |
| sort-change | 當(dāng)表格的排序條件發(fā)生變化的時(shí)候會(huì)觸發(fā)該事件 | { column, prop, order } |
| filter-change | 當(dāng)表格的篩選條件發(fā)生變化的時(shí)候會(huì)觸發(fā)該事件,參數(shù)的值是一個(gè)對(duì)象,對(duì)象的 key 是 column 的 columnKey,對(duì)應(yīng)的 value 為用戶選擇的篩選條件的數(shù)組。 | filters |
| current-change | 當(dāng)表格的當(dāng)前行發(fā)生變化的時(shí)候會(huì)觸發(fā)該事件,如果要高亮當(dāng)前行,請(qǐng)打開表格的 highlight-current-row 屬性 | currentRow, oldCurrentRow |
| header-dragend | 當(dāng)拖動(dòng)表頭改變了列的寬度的時(shí)候會(huì)觸發(fā)該事件 | newWidth, oldWidth, column, event |
| expand-change | 當(dāng)用戶對(duì)某一行展開或者關(guān)閉的時(shí)候會(huì)觸發(fā)該事件(展開行時(shí),回調(diào)的第二個(gè)參數(shù)為 expandedRows;樹形表格時(shí)第二參數(shù)為 expanded) | row, (expandedRows | expanded) |
TablePlus Methods
| 方法名 | 說明 | 參數(shù) |
|---|---|---|
| clearSelection | 用于多選表格,清空用戶的選擇 | — |
| toggleRowSelection | 用于多選表格,切換某一行的選中狀態(tài),如果使用了第二個(gè)參數(shù),則是設(shè)置這一行選中與否(selected 為 true 則選中) | row, selected |
| toggleAllSelection | 用于多選表格,切換所有行的選中狀態(tài) | - |
| toggleRowExpansion | 用于可展開表格與樹形表格,切換某一行的展開狀態(tài),如果使用了第二個(gè)參數(shù),則是設(shè)置這一行展開與否(expanded 為 true 則展開) | row, expanded |
| setCurrentRow | 用于單選表格,設(shè)定某一行為選中行,如果調(diào)用時(shí)不加參數(shù),則會(huì)取消目前高亮行的選中狀態(tài)。 | row |
| clearSort | 用于清空排序條件,數(shù)據(jù)會(huì)恢復(fù)成未排序的狀態(tài) | — |
| clearFilter | 不傳入?yún)?shù)時(shí)用于清空所有過濾條件,數(shù)據(jù)會(huì)恢復(fù)成未過濾的狀態(tài),也可傳入由columnKey組成的數(shù)組以清除指定列的過濾條件 | columnKey |
| doLayout | 對(duì) Table 進(jìn)行重新布局。當(dāng) Table 或其祖先元素由隱藏切換為顯示時(shí),可能需要調(diào)用此方法 | — |
| sort | 手動(dòng)對(duì) Table 進(jìn)行排序。參數(shù)prop屬性指定排序列,order指定排序順序。 | prop: string, order: string |
TablePlus column
| 參數(shù) | 說明 | 類型 | 可選值 | 默認(rèn)值 |
|---|---|---|---|---|
| type | 對(duì)應(yīng)列的類型。如果設(shè)置了 selection 則顯示多選框;如果設(shè)置了 index 則顯示該行的索引(從 1 開始計(jì)算);如果設(shè)置了 expand 則顯示為一個(gè)可展開的按鈕 | string | selection/index/expand/handler | — |
| index | 如果設(shè)置了 type=index,可以通過傳遞 index 屬性來自定義索引 | number, Function(index) | - | - |
| column-key | column 的 key,如果需要使用 filter-change 事件,則需要此屬性標(biāo)識(shí)是哪個(gè) column 的篩選條件 | string | — | — |
| label | 顯示的標(biāo)題 | string | — | — |
| prop | 對(duì)應(yīng)列內(nèi)容的字段名,也可以使用 property 屬性 | string | — | — |
| width | 對(duì)應(yīng)列的寬度 | string | — | — |
| min-width | 對(duì)應(yīng)列的最小寬度,與 width 的區(qū)別是 width 是固定的,min-width 會(huì)把剩余寬度按比例分配給設(shè)置了 min-width 的列 | string | — | — |
| fixed | 列是否固定在左側(cè)或者右側(cè),true 表示固定在左側(cè) | string, boolean | true, left, right | — |
| render-header | 列標(biāo)題 Label 區(qū)域渲染使用的 Function | Function(h, { column, $index }) | — | — |
| sortable | 對(duì)應(yīng)列是否可以排序,如果設(shè)置為 'custom',則代表用戶希望遠(yuǎn)程排序,需要監(jiān)聽 Table 的 sort-change 事件 | boolean, string | true, false, 'custom' | false |
| sort-method | 對(duì)數(shù)據(jù)進(jìn)行排序的時(shí)候使用的方法,僅當(dāng) sortable 設(shè)置為 true 的時(shí)候有效,需返回一個(gè)數(shù)字,和 Array.sort 表現(xiàn)一致 | Function(a, b) | — | — |
| sort-by | 指定數(shù)據(jù)按照哪個(gè)屬性進(jìn)行排序,僅當(dāng) sortable 設(shè)置為 true 且沒有設(shè)置 sort-method 的時(shí)候有效。如果 sort-by 為數(shù)組,則先按照第 1 個(gè)屬性排序,如果第 1 個(gè)相等,再按照第 2 個(gè)排序,以此類推 | String/Array/Function(row, index) | — | — |
| sort-orders | 數(shù)據(jù)在排序時(shí)所使用排序策略的輪轉(zhuǎn)順序,僅當(dāng) sortable 為 true 時(shí)有效。需傳入一個(gè)數(shù)組,隨著用戶點(diǎn)擊表頭,該列依次按照數(shù)組中元素的順序進(jìn)行排序 | array | 數(shù)組中的元素需為以下三者之一:ascending 表示升序,descending 表示降序,null 表示還原為原始順序 | ['ascending', 'descending', null] |
| resizable | 對(duì)應(yīng)列是否可以通過拖動(dòng)改變寬度(需要在 el-table 上設(shè)置 border 屬性為真) | boolean | — | true |
| formatter | 用來格式化內(nèi)容 | Function(row, column, cellValue, index) | — | — |
| show-overflow-tooltip | 當(dāng)內(nèi)容過長(zhǎng)被隱藏時(shí)顯示 tooltip | Boolean | — | false |
| align | 對(duì)齊方式 | String | left/center/right | left |
| header-align | 表頭對(duì)齊方式,若不設(shè)置該項(xiàng),則使用表格的對(duì)齊方式 | String | left/center/right | — |
| class-name | 列的 className | string | — | — |
| label-class-name | 當(dāng)前列標(biāo)題的自定義類名 | string | — | — |
| selectable | 僅對(duì) type=selection 的列有效,類型為 Function,F(xiàn)unction 的返回值用來決定這一行的 CheckBox 是否可以勾選 | Function(row, index) | — | — |
| reserve-selection | 僅對(duì) type=selection 的列有效,類型為 Boolean,為 true 則會(huì)在數(shù)據(jù)更新之后保留之前選中的數(shù)據(jù)(需指定 row-key) | Boolean | — | false |
| filters | 數(shù)據(jù)過濾的選項(xiàng),數(shù)組格式,數(shù)組中的元素需要有 text 和 value 屬性。 | Array[{ text, value }] | — | — |
| filter-placement | 過濾彈出框的定位 | String | 與 Tooltip 的 placement 屬性相同 | — |
| filter-multiple | 數(shù)據(jù)過濾的選項(xiàng)是否多選 | Boolean | — | true |
| filter-method | 數(shù)據(jù)過濾使用的方法,如果是多選的篩選項(xiàng),對(duì)每一條數(shù)據(jù)會(huì)執(zhí)行多次,任意一次返回 true 就會(huì)顯示。 | Function(value, row, column) | — | — |
| filtered-value | 選中的數(shù)據(jù)過濾項(xiàng),如果需要自定義表頭過濾的渲染方式,可能會(huì)需要此屬性。 | Array | — | — |
-分割線- | --- | --- | --- | --- |
| slotHeaderName | 自定義表頭插槽名字 | string | - | - |
TablePlus spanConfig
| 參數(shù) | 說明 | 類型 | 可選值 | 默認(rèn)值 |
|---|---|---|---|---|
| key | 根據(jù)key 合并 | string | - | - |
| propList | 需要合并的prop或者property 的key值 | array | [] | |
| children | 平鋪轉(zhuǎn)換列表對(duì)應(yīng)的key,傳children內(nèi)部會(huì)幫轉(zhuǎn)換,否則需要自己轉(zhuǎn)換 | string | — | children |
基本用法
自定義列的顯示內(nèi)容,可組合其他組件使用。
:::demo 通過 Scoped slot 可以獲取到 row, column, $index 和 store(table 內(nèi)部的狀態(tài)管理)的數(shù)據(jù),用法參考 demo。
<div>
<d-table-plus :columns="columns" :data="tableData">
<template #date="{row}">
<i class="el-icon-time"></i>
<span style="margin-left: 10px">{{ row.date }}</span>
</template>
<template #handler="{ row }">
<el-button type="text" size="small" @click="handlerAdd(row)"
>新增</el-button
>
<el-button type="text" size="small">編輯</el-button>
</template>
</d-table-plus>
</div>
<script>
export default {
data() {
return {
columns: [
{
label: '日期',
prop: 'date',
align: 'center',
slotName: 'date',
},
{
label: '姓名',
width: '100px',
prop: 'name',
required: true,
align: 'center',
formatter: (row) => `${row.name}1111`,
},
{
label: '省份',
prop: 'province',
},
{
label: '市區(qū)',
prop: 'city',
},
{
label: '地址',
prop: 'address',
showOverflowTooltip: true,
},
{
label: '操作',
type: 'handler',
width: '150px',
fixed: 'right',
slotName: 'handler',
},
],
tableData: [
{
date: '2016-05-02',
name: '王小虎',
province: '上海',
city: '普陀區(qū)',
address: '上海市普陀區(qū)金沙江路 1518 弄',
zip: 200333,
},
{
date: '2016-05-04',
name: '王小虎',
province: '上海',
city: '普陀區(qū)',
address: '上海市普陀區(qū)金沙江路 1517 弄',
zip: 200333,
},
{
date: '2016-05-01',
name: '王小虎',
province: '上海',
city: '普陀區(qū)',
address: '上海市普陀區(qū)金沙江路 1519 弄',
zip: 200333,
},
{
date: '2016-05-03',
name: '王小虎',
province: '上海',
city: '普陀區(qū)',
address: '上海市普陀區(qū)金沙江路 1516 弄',
zip: 200333,
},
],
};
},
};
</script>到此這篇關(guān)于vue基于el-table拓展之table-plus組件的文章就介紹到這了,更多相關(guān)vue table-plus內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue中Table組件Select的勾選和取消勾選事件詳解
- vue element-ui table組件動(dòng)態(tài)生成表頭和數(shù)據(jù)并修改單元格格式 父子組件通信
- Ant-design-vue Table組件customRow屬性的使用說明
- vxe-table vue table 表格組件功能
- Vue中Table組件行內(nèi)右鍵菜單實(shí)現(xiàn)方法(基于 vue + AntDesign)
- bootstrap-table formatter 使用vue組件的方法
- 基于vue2的table分頁(yè)組件實(shí)現(xiàn)方法
- 封裝Vue Element的table表格組件的示例詳解
- vue項(xiàng)目中將element-ui table表格寫成組件的實(shí)現(xiàn)代碼
- Vue封裝通用table組件的完整步驟記錄
相關(guān)文章
在vue-cli的組件模板里使用font-awesome的兩種方法
今天小編就為大家分享一篇在vue-cli的組件模板里使用font-awesome的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vue單頁(yè)及多頁(yè)應(yīng)用全局配置404頁(yè)面實(shí)踐記錄
無論單頁(yè)還是多頁(yè),我的實(shí)現(xiàn)思路是總體配置404頁(yè)面的思路就是在前端路由表中添加一個(gè) path: '/404' 的路由,渲染相應(yīng)的404頁(yè)面。這篇文章主要介紹了Vue單頁(yè)及多頁(yè)應(yīng)用全局配置404頁(yè)面實(shí)踐,需要的朋友可以參考下2018-05-05
前端Vue中常用rules校驗(yàn)規(guī)則(輪子)如電話身份證郵箱等校驗(yàn)方法例子
當(dāng)我們?cè)陂_發(fā)應(yīng)用時(shí)經(jīng)常需要對(duì)表單進(jìn)行校驗(yàn),以確保用戶輸入的數(shù)據(jù)符合預(yù)期,這篇文章主要給大家介紹了關(guān)于前端Vue中常用rules校驗(yàn)規(guī)則(輪子)如電話身份證郵箱等校驗(yàn)方法的相關(guān)資料,需要的朋友可以參考下2023-12-12
element-ui中的select下拉列表設(shè)置默認(rèn)值方法
今天小編就為大家分享一篇element-ui中的select下拉列表設(shè)置默認(rèn)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue3輸入無效路由跳轉(zhuǎn)到指定error頁(yè)面問題
這篇文章主要介紹了vue3輸入無效路由跳轉(zhuǎn)到指定error頁(yè)面問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Vue插槽_特殊特性slot,slot-scope與指令v-slot說明
這篇文章主要介紹了Vue插槽_特殊特性slot,slot-scope與指令v-slot說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09

