Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Vue Element Admin | 81,215 | 2 | 11 days ago | 7 | August 08, 2020 | 1,279 | mit | Vue | ||
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin | ||||||||||
Vue2 Elm | 39,579 | 2 months ago | 106 | gpl-2.0 | Vue | |||||
Large single page application with 45 pages built on vue2 + vuex. 基于 vue2 + vuex 构建一个具有 45 个页面的大型单页面应用 | ||||||||||
Vuex | 27,973 | 42,331 | 12,677 | 15 days ago | 61 | June 17, 2021 | 127 | mit | JavaScript | |
🗃️ Centralized State Management for Vue.js. | ||||||||||
Yesplaymusic | 22,466 | a day ago | 427 | mit | Vue | |||||
高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: | ||||||||||
Vue Admin Template | 18,004 | 3 days ago | 294 | mit | JavaScript | |||||
a vue2.0 minimal admin template | ||||||||||
Vue Vben Admin | 16,601 | 4 days ago | 30 | July 15, 2020 | 587 | mit | Vue | |||
A modern vue admin. It is based on Vue3, vite and TypeScript. It's fast! | ||||||||||
Iview Admin | 15,935 | 7 | a year ago | 206 | September 04, 2019 | 611 | mit | Vue | ||
Vue 2.0 admin management system template based on iView | ||||||||||
Vue2 Manage | 12,407 | 4 months ago | 100 | gpl-2.0 | Vue | |||||
A admin template based on vue + element-ui. 基于vue + element-ui的后台管理系统基于 vue + element-ui 的后台管理系统 | ||||||||||
Learnvue | 12,190 | a month ago | 20 | JavaScript | ||||||
:octocat:Vue.js 源码解析 | ||||||||||
D2 Admin | 11,928 | 2 months ago | 45 | August 09, 2020 | 21 | mit | JavaScript | |||
An elegant dashboard |
Intuitive, type safe and flexible Store for Vue
Pinia works with both Vue 2 and Vue 3.
Pinia is the most similar English pronunciation of the word pineapple in Spanish: pia. A pineapple is in reality a group of individual flowers that join together to create a multiple fruit. Similar to stores, each one is born individually, but they are all connected at the end. It's also a delicious tropical fruit indigenous to South America.
A few notes about the project and possible questions:
Q: Is Pinia the successor of Vuex?
A: Yes
Q: What about dynamic modules?
A: Dynamic modules are not type safe, so instead we allow creating different stores that can be imported anywhere
# or pnpm or yarn
npm install pinia
If you are using Vue <2.7, make sure to install latest @vue/composition-api
:
npm install pinia @vue/composition-api
Create a pinia (the root store) and pass it to app:
// Vue 3
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
const pinia = createPinia()
const app = createApp(App)
app.use(pinia)
app.mount('#app')
// Vue 2
import { createPinia, PiniaVuePlugin } from 'pinia'
Vue.use(PiniaVuePlugin)
const pinia = createPinia()
new Vue({
el: '#app',
// other options...
// ...
// note the same `pinia` instance can be used across multiple Vue apps on
// the same page
pinia,
})
You can create as many stores as you want, and they should each exist in different files:
import { defineStore } from 'pinia'
// main is the name of the store. It is unique across your application
// and will appear in devtools
export const useMainStore = defineStore('main', {
// a function that returns a fresh state
state: () => ({
counter: 0,
name: 'Eduardo',
}),
// optional getters
getters: {
// getters receive the state as first parameter
doubleCounter: (state) => state.counter * 2,
// use getters in other getters
doubleCounterPlusOne(): number {
return this.doubleCounter + 1
},
},
// optional actions
actions: {
reset() {
// `this` is the store instance
this.counter = 0
},
},
})
defineStore
returns a function that has to be called to get access to the store:
import { useMainStore } from '@/stores/main'
import { storeToRefs } from 'pinia'
export default defineComponent({
setup() {
const main = useMainStore()
// extract specific store properties
const { counter, doubleCounter } = storeToRefs(main)
return {
// gives access to the whole store in the template
main,
// gives access only to specific state or getter
counter,
doubleCounter,
}
},
})
To learn more about Pinia, check its documentation.