诚城的成长 诚城的成长
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)

诚城

我有N个梦想……
首页
  • 高数基础
  • 数一

    • 高等数学
    • 线性代数
    • 概率论与数理统计
  • 820

    • 数据结构
    • 计算机操作系统
  • 英一

    • 单词
    • 语法
    • 阅读理解
    • 作文
  • 政治

    • 马克思主义基本原理
    • 毛泽东
    • 近代史
    • 思修
    • 时事
  • openpose
  • html5
  • css3
  • UI

    • Tailwind Css
    • Element-Plus
    • UniApp
  • 框架

    • Vue3
  • 拓展包

    • 包管理工具
    • 包开发
  • 开发语言

    • C语言
    • PHP
    • Phyton
  • 框架

    • Laravel
  • 会计

    • 初级经济法基础
    • 初级会计实务
  • 软考

    • 信息系统项目管理师
  • 博客

    • vitepress
    • vuepress
  • manim
  • git
  • vsCode
  • latex
  • docker
  • axios
  • vim
  • mac
  • Jetbrains

    • phpstorm
    • clion
突发奇想
GitHub (opens new window)
  • start
  • pinia

    • pinia
      • install
      • setting
      • use
      • 创建 store
      • 使用
    • state
    • action
    • getter
    • other
    • 持久化存储
  • router
  • setup
  • solt
  • computed
  • component.md

  • map
  • vue3
  • pinia
诚城
2022-04-15
目录

pinia原创

全局状态管理。

参考 vuex4 (opens new window)
vue3以后将转向Pinia,所以新项目最好用Pinia。

Pinia 官网 (opens new window)

# install

npm install -S pinia
yarn add -D pinia

# setting

  • 在src目录下建立文件夹store。
  • 在store文件夹下建立文件index.js。
    // xxx.ts or xxx.js
    import {defineStore} form "vuex";
    // 命名规范请使用 use
    export const useXxxxStore = defineStore('唯一的id',{
      // 必须是箭头函数 返回一个对象 , 存储状态
      state:{},
      // getter 类似 computed 修饰一些值,可以对 state 的数据进行运算
      getters:{},
      // action 类似 methods 可以做同步、异步,提交state
      actions:{}
    })
    
    export default store;
    
  • 在项目的main.js中添加相关store代码:
    import { createApp } from 'vue'
    import store from './store'
    import App from './App.vue'
    
    creatApp(App)
      .use(store)
      .mount('#app')
    

# use

在*.vue中使用


<template>
 // 从 store 中获取 xxx 的数据
{{xxx}}
</template>

<script setup>
...
import {mapState} from 'vuex'
...


export default {
  ...
  computed:{
    ...mapState(['xxx'])
    // 即从 ./store/index.js 中拿到 states 中的 xxx 的数据
  }
  ...
}
</script>

# 创建 store

// xxxStore.js
import { defineStore } from 'pinia'

export const xxxStore = defineStore('xxx', {
  state: () => {
    return {
      xxx: 'xxx'
    }
  }
})

# 使用

<script setup lang="ts">
import { mainStore } from '@/stores/MainStore'

mainStore()
</script>
#vuex
上次更新: 2022/08/23, 18:12:45
start
state

← start state→

Theme by Vdoing | Copyright © 2022-2022 carveybunt | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
×

特别申明:

本站所有内容均为个人理解或转载,如有不当之处,敬请大佬指导!