Awesome
vue-hooks
⚡️ Awesome Vue Hooks
Using @vue/composition-api
to implement useful vue hooks.
Vue 3.0 has not been released yet, it allows you to use functional-based components in advance.
⚠️ 2.x has been switched to @vue/composition-api
, if you are using version 1.x please use vue-function-api
Install
yarn add @vue/composition-api @u3u/vue-hooks
Documentation
Docs are available at https://vue-hooks.netlify.com
Usage
import Vue from 'vue';
import VueCompositionAPI from '@vue/composition-api';
import hooks from '@u3u/vue-hooks';
Vue.use(hooks);
Vue.use(VueCompositionAPI); // Don't forget to use the plugin!
import { createComponent } from '@vue/composition-api';
import { useWindowSize } from '@u3u/vue-hooks';
export default createComponent({
setup() {
const { width, height, widthPixel, heightPixel } = useWindowSize();
return { width, height, widthPixel, heightPixel };
},
render() {
const { width, height, widthPixel, heightPixel } = this;
return (
<div id="app" style={{ width: widthPixel, height: heightPixel }}>
dynamic window size: {width}, {height}
</div>
);
},
});
Hooks
useDate
— Usingdayjs
to process date.useWindowSize
— Trackswindow
dimensions.useCounter
— Tracks state of a number.usePrevious
— Returns the previous state or props.useRouter
— A hook forvue-router
.useStore
— A hook forvuex
.useState
— A hook formapState
.useGetters
— A hook formapGetters
.useMutations
— A hook formapMutations
.useActions
— A hook formapActions
.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b feat/new-hook
- Commit your changes:
git commit -am 'feat(hooks): add a new hook'
- Push to the branch:
git push origin feat/new-hook
- Submit a pull request :D
Contributors
Thanks goes to these wonderful people (emoji key):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore --> <table> <tr> <td align="center"><a href="https://qwq.cat"><img src="https://avatars2.githubusercontent.com/u/20062482?v=4" width="100px;" alt="u3u"/><br /><sub><b>u3u</b></sub></a><br /><a href="https://github.com/u3u/vue-hooks/commits?author=u3u" title="Code">💻</a> <a href="https://github.com/u3u/vue-hooks/commits?author=u3u" title="Documentation">📖</a> <a href="#example-u3u" title="Examples">💡</a> <a href="https://github.com/u3u/vue-hooks/commits?author=u3u" title="Tests">⚠️</a></td> </tr> </table> <!-- ALL-CONTRIBUTORS-LIST:END -->This project follows the all-contributors specification. Contributions of any kind are welcome!