|
1 |
| -[](https://www.npmjs.com/package/laravel-vue-pagination) [](https://www.npmjs.com/package/laravel-vue-pagination) |
| 1 | +[](https://www.npmjs.com/package/laravel-vue-pagination) [](https://www.npmjs.com/package/laravel-vue-pagination) [](https://github.com/gilbitron/laravel-vue-pagination/actions/workflows/tests.yml) |
2 | 2 |
|
3 | 3 | > Want your logo here? [Sponsor me on GitHub](https://github.com/users/gilbitron/sponsorship)
|
4 | 4 |
|
5 | 5 | # Laravel Vue Pagination
|
6 | 6 |
|
7 |
| -A Vue.js pagination component for Laravel paginators. |
| 7 | +Laravel Vue Pagination is a Vue.js pagination component for Laravel. It provides out-of-the-box components for Bootstrap 4/5 and Tailwind CSS. |
8 | 8 |
|
9 |
| -## Requirements |
| 9 | +## Documentation |
10 | 10 |
|
11 |
| -* [Vue.js](https://vuejs.org/) 3 |
12 |
| -* [Laravel](http://laravel.com/docs/) 5+ |
13 |
| -* [Bootstrap](http://getbootstrap.com/) 4 |
| 11 | +Complete documentation and demo available at [https://laravel-vue-pagination.org](https://laravel-vue-pagination.org). |
14 | 12 |
|
15 |
| -For Vue 2 support use [v2](https://github.com/gilbitron/laravel-vue-pagination/releases/tag/2.3.2). |
16 |
| - |
17 |
| -## Install |
18 |
| - |
19 |
| -```bash |
20 |
| -npm install laravel-vue-pagination |
21 |
| -// or |
22 |
| -yarn add laravel-vue-pagination |
23 |
| -``` |
24 |
| - |
25 |
| -## Usage |
26 |
| - |
27 |
| -Register the component: |
28 |
| - |
29 |
| -```javascript |
30 |
| -import LaravelVuePagination from 'laravel-vue-pagination'; |
31 |
| - |
32 |
| -export default { |
33 |
| - components: { |
34 |
| - 'Pagination': LaravelVuePagination |
35 |
| - } |
36 |
| -} |
37 |
| -``` |
38 |
| - |
39 |
| -Use the component: |
40 |
| - |
41 |
| -```html |
42 |
| -<ul> |
43 |
| - <li v-for="post in laravelData.data" :key="post.id">{{ post.title }}</li> |
44 |
| -</ul> |
45 |
| - |
46 |
| -<Pagination :data="laravelData" @pagination-change-page="getResults" /> |
47 |
| -``` |
48 |
| - |
49 |
| -```javascript |
50 |
| -export default { |
51 |
| - data() { |
52 |
| - return { |
53 |
| - // Our data object that holds the Laravel paginator data |
54 |
| - laravelData: {}, |
55 |
| - } |
56 |
| - }, |
57 |
| - |
58 |
| - mounted() { |
59 |
| - // Fetch initial results |
60 |
| - this.getResults(); |
61 |
| - }, |
62 |
| - |
63 |
| - methods: { |
64 |
| - // Our method to GET results from a Laravel endpoint |
65 |
| - getResults(page = 1) { |
66 |
| - axios.get('example/results?page=' + page) |
67 |
| - .then(response => { |
68 |
| - this.laravelData = response.data; |
69 |
| - }); |
70 |
| - } |
71 |
| - } |
72 |
| - |
73 |
| -} |
74 |
| -``` |
75 |
| - |
76 |
| -### Customizing Prev/Next Buttons |
77 |
| - |
78 |
| -Prev/Next buttons can be customized using the `prev-nav` and `next-nav` slots: |
79 |
| - |
80 |
| -```html |
81 |
| -<pagination :data="laravelData"> |
82 |
| - <template #prev-nav> |
83 |
| - <span>< Previous</span> |
84 |
| - </template> |
85 |
| - <template #next-nav> |
86 |
| - <span>Next ></span> |
87 |
| - </template> |
88 |
| -</pagination> |
89 |
| -``` |
90 |
| - |
91 |
| -## API |
92 |
| - |
93 |
| -### Props |
94 |
| - |
95 |
| -| Name | Type | Description | |
96 |
| -| --- | --- | --- | |
97 |
| -| `data` | Object | An object containing the structure of a [Laravel paginator](https://laravel.com/docs/8.x/pagination) response or a [Laravel API Resource](https://laravel.com/docs/8.x/eloquent-resources) response. | |
98 |
| -| `limit` | Number | (optional) Limit of pages to be rendered. `0` shows all pages (default). `-1` will hide numeric pages and leave only arrow navigation. Any positive integer (e.g. `2`) will define how many pages should be shown on either side of the current page when only a range of pages are shown. | |
99 |
| -| `show-disabled` | Boolean | (optional) Show disabled prev/next buttons instead of hiding them. `false` hides disabled buttons (default). `true` shows disables buttons. | |
100 |
| -| `size` | String | (optional) One of `small`, `default` or `large` | |
101 |
| -| `align` | String | (optional) One of `left` (default), `center` or `right` | |
| 13 | +## Show your Support |
102 | 14 |
|
103 |
| -### Events |
| 15 | +To show your support for my work on this project: |
104 | 16 |
|
105 |
| -| Name | Description | |
106 |
| -| --- | --- | |
107 |
| -| `pagination-change-page` | Triggered when a user changes page. Passes the new `page` index as a parameter. | |
| 17 | +* [Star this repository](https://github.com/gilbitron/laravel-vue-pagination/stargazers) |
| 18 | +* [Tell others about this project](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Fgilbitron%2Flaravel-vue-pagination) |
| 19 | +* [Sponsor me on GitHub](https://github.com/users/gilbitron/sponsorship) |
108 | 20 |
|
109 | 21 | ## Development
|
110 | 22 |
|
111 | 23 | To work on the library locally, run the following command:
|
112 | 24 |
|
113 | 25 | ```bash
|
114 |
| -npm run serve |
| 26 | +yarn dev |
115 | 27 | ```
|
116 | 28 |
|
117 | 29 | To run the tests:
|
118 | 30 |
|
119 | 31 | ```bash
|
120 |
| -npm run test |
| 32 | +yarn test |
121 | 33 | ```
|
122 | 34 |
|
123 |
| -## Show your Support |
124 |
| - |
125 |
| -To show your support for my work on this project: |
126 |
| - |
127 |
| -* [Star this repository](https://github.com/gilbitron/laravel-vue-pagination/stargazers) |
128 |
| -* [Tell others about this project](https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Fgilbitron%2Flaravel-vue-pagination) |
129 |
| -* [Sponsor me on GitHub](https://github.com/users/gilbitron/sponsorship) |
130 |
| - |
131 | 35 | ## Credits
|
132 | 36 |
|
133 |
| -Laravel Vue Pagination was created by [Gilbert Pellegrom](https://gilbitron.me) from [Dev7studios](https://dev7studios.co). Released under the MIT license. |
| 37 | +Laravel Vue Pagination was created by [Gilbert Pellegrom](https://gilbitron.me). Released under the MIT license. |
0 commit comments