1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vuex for Vue</title> </head> <body> <div id="app"> <input type="number" v-model.number="amount"> <button v-on:click="increment">Increment</button> <button v-on:click="decrement">Decrement</button> <p>{{ store.countFix(3) }}</p> </div> <script> const useCounterStore = Pinia.defineStore('counter', { state: () => ({ count: 0 }), actions: { increment(x) { this.count += x }, decrement(x) { this.count -= x } }, getters: { countFix: (state) => (custom) => state.count.toFixed(custom) } }) const RootComponent = { setup() { const store = useCounterStore() return { amount: 1, store, } }, methods: { increment() { // this.store.increment(this.amount) // this.store.count += this.amount this.store.$patch({ count: this.store.count + this.amount }) }, decrement() { this.store.decrement(this.amount) } }, } const pinia = Pinia.createPinia() const app = Vue.createApp(RootComponent) app.use(pinia) app.mount("#app") </script> </body> </html> |
Pinia – Count: Simple Component
Author: admin - Posted: 02/10/22 - Update: 04/11/22