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

vue3 pinia

作者:任光阴风干ゝ影象   发布日期:2025-11-25   浏览:59

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

export const useCounterStore = defineStore('counter', {
  // 状态
  state: () => ({
    count: 0,
  }),
  // 计算属性
  getters: {
    doubleCount: (state) => state.count * 2,
  },
  // 操作
  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);

// 注册 Pinia
app.use(createPinia());

app.mount('#app');

// 在组件中使用
<template>
  <div>
    <p>Count: {{ counter.count }}</p>
    <p>Double Count: {{ counter.doubleCount }}</p>
    <button @click="counter.increment">Increment</button>
    <button @click="counter.decrement">Decrement</button>
  </div>
</template>

<script setup>
import { useCounterStore } from './store/counter';
const counter = useCounterStore();
</script>

解释说明

  1. 定义 Store:

    • 使用 defineStore 创建一个名为 counter 的 store。
    • state 定义了状态,这里是 count
    • getters 定义了计算属性,这里是 doubleCount,它返回 count 的两倍。
    • actions 定义了操作方法,这里是 incrementdecrement,用于增加和减少 count
  2. 注册 Pinia:

    • main.js 中,创建 Vue 应用并注册 Pinia。
    • 使用 app.use(createPinia()) 将 Pinia 注册到应用中。
  3. 在组件中使用 Store:

    • 使用 <script setup> 语法导入并使用 useCounterStore
    • 在模板中通过 counter.countcounter.doubleCount 访问状态和计算属性。
    • 通过 @click 绑定按钮事件调用 counter.incrementcounter.decrement 方法。

上一篇:vue3 ref

下一篇:vue 生命周期

大家都在看

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 中文站