Install
$ agentstack add skill-jiaiyan-element-plus-skills-el-pagination ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Pagination Component
Pagination component splits large amounts of data into pages for better user experience and performance.
When to Use
- Display large datasets in manageable chunks
- Navigate through search results
- Control page size and current page
- Show total item count and page information
Basic Usage
import { ref } from 'vue'
const currentPage = ref(1)
const pageSize = ref(10)
const total = ref(100)
const handleSizeChange = (size) => {
console.log('Page size:', size)
}
const handleCurrentChange = (page) => {
console.log('Current page:', page)
}
Layout Configuration
, slot"
>
Custom content
Background Color
Small Size
Pager Count
Hide on Single Page
Custom Icons and Text
import { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'
Complete Example with Data Fetching
import { ref, onMounted } from 'vue'
const tableData = ref([])
const currentPage = ref(1)
const pageSize = ref(10)
const total = ref(0)
const fetchData = async () => {
const response = await fetch(
`/api/data?page=${currentPage.value}&size=${pageSize.value}`
)
const data = await response.json()
tableData.value = data.items
total.value = data.total
}
onMounted(() => {
fetchData()
})
API Reference
Attributes
| Name | Description | Type | Default | |------|-------------|------|---------| | size | Pagination size | 'large' \| 'default' \| 'small' | 'default' | | background | Buttons have background color | boolean | false | | page-size / v-model:page-size | Items per page | number | — | | default-page-size | Default page size | number | 10 | | total | Total item count | number | — | | page-count | Total page count | number | — | | pager-count | Number of pagers shown | 5 \| 7 \| 9 \| 11 \| 13 \| 15 \| 17 \| 19 \| 21 | 7 | | current-page / v-model:current-page | Current page number | number | — | | default-current-page | Default current page | number | 1 | | layout | Layout elements | string | 'prev, pager, next, jumper, ->, total' | | page-sizes | Options for page size | number[] | [10, 20, 30, 40, 50, 100] | | append-size-to | Element for size dropdown | string | — | | popper-class | Custom class for size dropdown | string | '' | | popper-style | Custom style for size dropdown | string \| object | — | | prev-text | Text for prev button | string | '' | | prev-icon | Icon for prev button | string \| Component | ArrowLeft | | next-text | Text for next button | string | '' | | next-icon | Icon for next button | string \| Component | ArrowRight | | disabled | Disable pagination | boolean | false | | teleported | Teleport dropdown to body | boolean | true | | hide-on-single-page | Hide when only one page | boolean | false |
Layout Elements
| Element | Description | |---------|-------------| | sizes | Page size selector | | prev | Previous page button | | pager | Page number list | | next | Next page button | | jumper | Jump to page input | | -> | Elements after this are pulled right | | total | Total item count display | | slot | Custom slot content |
Events
| Name | Description | Type | |------|-------------|------| | size-change | Page size changed | (value: number) => void | | current-change | Current page changed | (value: number) => void | | change | Page or size changed | (currentPage: number, pageSize: number) => void | | prev-click | Prev button clicked | (value: number) => void | | next-click | Next button clicked | (value: number) => void |
Slots
| Name | Description | |------|-------------| | default | Custom content (requires slot in layout) |
Common Patterns
With v-model Binding
import { ref, watch } from 'vue'
const page = ref(1)
const size = ref(10)
const total = ref(100)
watch([page, size], ([newPage, newSize]) => {
console.log('Page:', newPage, 'Size:', newSize)
})
Responsive Pagination
import { ref, onMounted, onUnmounted } from 'vue'
const isMobile = ref(false)
const total = ref(100)
const checkMobile = () => {
isMobile.value = window.innerWidth {
checkMobile()
window.addEventListener('resize', checkMobile)
})
onUnmounted(() => {
window.removeEventListener('resize', checkMobile)
})
Custom Slot Content
Page {{ currentPage }}
import { ref } from 'vue'
const currentPage = ref(1)
Component Interactions
- Use with Table for paginated data display
- Combine with Select for custom page size options
- Use with Input for custom page jumper
- Integrate with Card for paginated card lists
Best Practices
- Use
v-model:current-pageandv-model:page-sizefor two-way binding - Set
hide-on-single-pagewhen total items may be small - Use
backgroundfor better visibility on light backgrounds - Choose appropriate
pager-countbased on available width - Use
size="small"for compact layouts - Always define either
totalorpage-count
Deprecation Notes
smallattribute is deprecated, usesize="small"instead- Events are still supported but
v-modelbinding is recommended
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jiaiyan
- Source: jiaiyan/element-plus-skills
- License: MIT
- Homepage: https://skills.sh/jiaiyan/element-plus-skills/element-plus-skills
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.