Why create a custom DatePicker yourself, if there are so many really great Vue.js components already?
We've collected our favourite DatePickers based on whether they are well maintained, easy to use, look nice and provide a good UX. This list will grow over time, and it's in no particular order.
If you think I'm missing an essential entry on this list (or one of them is deprecated and I didn't notice!) - just leave a comment or send me an email (firstname.lastname@example.org)!
If you want a simple and stable component, you can't go wrong with vuejs-datepicker. It supports the disabling and highlighting of dates, inline mode and translations.
vue-datetime is a mobile friendly DateTime Picker that supports date- and datetime mode. You can configure disabled dates and it supports localisation. Simple & functional!
V-Calendar is a calendar component as well as a DatePicker. The calendar supports highlights and popovers, the DatePicker supports single dates, multiple dates and date range selections.
It's very customizable and lets you easily disable certain date patterns like weekends or the first Monday of every month.
A+ for style and animation! Oh, and the documentation is awesome, too.
If you love the DatePicker on airbnb.com, this may be exactly your thing. It very easy to use and supports range- as well as single date selection. You can disable certain dates and do some custom configurations.
This DatePicker is a great fit for booking platforms and goes one step further compared to the AirBnB DatePicker. It's a responsive component that displays the number of nights selected and has features for custom check-in/check-out rules, localisation, minimum/maximum nights selected and more.
It doesn't support single date selection, though and is crafted with a check-in / check-out-date use case in mind.
Date, Time and DateTime Selections, inline or as a popover. You can disable the selection of weekends, set an allowed date range (min and max dates displayed) and customize colors. The component also keeps improving for responsive views.