首页 > 其他分享 >VUE3状态管理Pinia使用介绍

VUE3状态管理Pinia使用介绍

时间:2022-12-22 15:33:42浏览次数:67  
标签:状态 Pinia app counter ts pinia VUE3 import store

vue3中推荐使用的状态管理工具:pinia,真的很好用官方文档中文文档

一、安装pinia

yarn add pinia
# 或者使用 npm
npm install pinia

二、src文件夹下新建store文件夹,并新建index.ts

import { createPinia } from 'pinia'
const pinia = createPinia()
export default pinia

三、在main.ts中引入pinia

import pinia from './store'
const app = createApp(App)
app.use(router)
app.use(pinia)
app.mount('#app')

以上三个步骤,就已经配置好pinia了,具体使用,就是在store文件夹下创建一个个具体的store就可以了,一下以创建一个counter.ts为例说明
1.在store文件夹下创建文件 counter.ts,代码如下

import { defineStore } from 'pinia'

//创建一个id为counter的store,// 第一个参数是应用程序中 store 的唯一 id
const useCounterStore = defineStore('counter', {
  state: () => ({
    counter: 100
  }),
  getters: {
    doubleCounter(state) {
      return state.counter * 2
    }
  },
  actions: {
    changeCounterAction(newCounter: number) {
      this.counter = newCounter
    }
  }
})

export default useCounterStore

注意:具体的store命名一般以use开头
2.在组件中使用store

<template>
  <div class="main">
    <h2>main: {{ counterStore.counter }}-{{ counterStore.doubleCounter }}</h2>
    <button @click="changeCounter">修改counter</button>
  </div>
</template>

<script setup lang="ts">
import useCounterStore from '@/store/counter'

const counterStore = useCounterStore()

function changeCounter() {
  counterStore.changeCounterAction(123)
}
</script>

标签:状态,Pinia,app,counter,ts,pinia,VUE3,import,store
From: https://www.cnblogs.com/qingheshiguang/p/16998846.html

相关文章

  • react状态管理
    importReact,{useState,useMemo}from"react";/*搜索框案例searchKey-搜索关键字data-搜索结果数据filtered-筛选搜......
  • Angular给HTML节点绑定自定义属性和变量,用于设置一些动态的状态变化非常有用!
    app.component.html <h1[attr.color]="color">内容</h1>app.component.tscolor='red';app.component.scss[color='red']{color:red;}实际效果 ......
  • VUE3项目中的Router路由配置
    一、安装路由如果新建项目的时候已经有选择了Router选项就不需要再次安装了npminstallvue-router二、src目录下新增router文件夹,并在文件夹中新建index.ts文件impor......
  • Pinia 全局状态管理工具
    Pinia第一章(介绍Pinia)前言全局状态管理工具Pinia.js有如下特点:完整的ts的支持;足够轻量,压缩后的体积只有1kb左右;去除mutations,只有state,getters,a......
  • Vue3.0 生命周期
    所有生命周期钩子的this上下文都是绑定至实例的。beforeCreate:在实例初始化之后、进行数据帧听和事件/侦听器的配置之前同步调用。created:实例创建完成,主要包括数据帧听......
  • 应该掌握的HTTP状态码
    状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。2XX成功,2XX的响应结果表明请求被正常处......
  • Vite + Vue3导入 vue-i18n 插件
    使用Vite+Vue3导入vue-i18n插件Step1下载vue-i18n插件npminstallvue-i18nStep2新建local文件夹,创建index.jsindex.jsimport{createI18n}from"v......
  • vue3 + ts 路由换标题
    npminstallvue-wechat-title--save//引入换标题的插件importVueWechatTitlefrom'vue-wechat-title'//使用插件VueWechatTitleapp.use(store).use(router)......
  • vue3 Composition API使用
    Vue3新增了CompositionAPI。我们只需将实现某一功能的相关代码全部放进一个函数中,然后return需要对外暴露的对象。不同功能的代码都是一个个函数,最终在setup()函数中......
  • pgpool_II节点状态问题(pgpool_status)
    环境:OS:Centos7PG:14pgpool:4.4通过vip登录发现主节点状态一直是down,重启该节点的pgpool_II也没有用[postgres@pg2pgpool-II]$psql-h192.168.1.199-p9999-Up......