Tarektouati / vue-use-web

🕸 Web APIs implemented as Vue.js composition functions
https://tarektouati.github.io/vue-use-web/
MIT License
751 stars 42 forks source link
composition-api essential hooks utility-library vue vue-next vuejs

vue-use-web

![Github Actions](https://img.shields.io/github/workflow/status/TarekTouati/vue-use-web/Lint%20and%20test/master?style=flat-square) ![Codacy grade](https://img.shields.io/codacy/grade/866989b53305443f9b1cdeb646b33d4c?style=flat-square) ![npm](https://img.shields.io/npm/v/vue-use-web?style=flat-square) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/vue-use-web?style=flat-square) ![npm](https://img.shields.io/npm/dm/vue-use-web?style=flat-square) [![GitHub license](https://img.shields.io/github/license/Tarektouati/vue-use-web?style=flat-square)](https://github.com/Tarektouati/vue-use-web/blob/master/LICENSE)

Web APIs implemented as Vue.js composition functions.

This is a collection of Web APIs exposed as Vue.js composition hooks that's upcoming in Vue 3.0

You can use them with Vue 2.0 using @vue/composition-api until Vue 3.0 gets out.

What and why

Web APIs are ever changing, this library aims to provide to Vue.js developers a stable interface that integrates well into the ecosystem. Also an interface that degrades gracefully when browsers do not support said features.

I initially was choosing to expose this as a Stateful functional components but that isn't very handy and is not future proof. Implementing these APIs in Vue composition API (hooks) makes them ready for Vue 3.0 and beyond. Personally I think this is the perfect example to showcase the power of the Composition API.

Installation

# install with yarn
yarn add @vue/composition-api vue-use-web

# install with npm
npm install @vue/composition-api vue-use-web

Usage

Kindly Check the documentation for examples.

APIs

Each composition function is designed to degrade gracefully so you can safely use them, but you should use these as a progressive enhancements for your apps. Check browsers compatibilities for each API.

Inspiration

This library is inspired by the-platform and standard-hooks for React.js.

License

MIT