Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

vue3 pinia使用

作者:风外听竹   发布日期:2025-11-11   浏览:112

// store/counter.js
import { defineStore } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => {
    return { count: 0 };
  },
  actions: {
    increment() {
      this.count++;
    },
    decrement() {
      this.count--;
    },
  },
});

// main.js
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import App from './App.vue';

const app = createApp(App);

app.use(createPinia());

app.mount('#app');

// App.vue
<template>
  <div>
    <p>Count: {{ counter.count }}</p>
    <button @click="counter.increment">Increment</button>
    <button @click="counter.decrement">Decrement</button>
  </div>
</template>

<script>
import { useCounterStore } from './store/counter';

export default {
  setup() {
    const counter = useCounterStore();
    return { counter };
  },
};
</script>

解释说明

  1. 创建 Pinia Store:

    • store/counter.js 文件中使用 defineStore 定义了一个名为 counter 的 store。
    • state 函数返回一个对象,包含初始状态 count: 0
    • actions 对象包含两个方法 incrementdecrement,用于修改状态。
  2. 初始化 Vue 应用并集成 Pinia:

    • main.js 中,通过 createPinia 创建一个新的 Pinia 实例,并通过 app.use(createPinia()) 将其安装到 Vue 应用中。
  3. 在组件中使用 Store:

    • App.vue 中,通过 useCounterStore 钩子函数获取 counter store 实例。
    • 使用 setup 函数将 counter 返回给模板,以便在模板中使用。
  4. 模板中的使用:

    • 模板中展示了当前的计数器值,并提供了两个按钮来增加或减少计数器的值。

上一篇:vue3 $refs

下一篇:vue3 created

大家都在看

vue.js devtools用法

vue js for循环

highlight.js vue

vue.config.js 配置

vue.config.js 配置代理

vue.config.js configu

node.js vue

vue3组件传值的方式

vue3 子路由

vue3 router传参

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站