• vue3.2 pinia的使用


    目录

    1 下载

    2 引入 main.js

    3 创建store --> common.js

    4 vue3.2 项目中使用

    5 监听state值 变化


    1 下载

    npm i pinia

    2 引入 main.js

    1. import { createApp } from "vue";
    2. import App from "./App.vue";
    3. const app = createApp(App);
    4. // 引入pinia
    5. import { createPinia } from "pinia";
    6. const pinia = createPinia();
    7. app.use(pinia).mount("#app");

    3 创建store --> common.js

    1. import { defineStore } from "pinia";
    2. export default defineStore("commonStore", {
    3. state: () => {
    4. return {
    5. count: 0,
    6. man: "男",
    7. arrLove: ["花"],
    8. objJob: { name1: "58" },
    9. };
    10. },
    11. actions: {
    12. selMan(val) {
    13. this.man = val;
    14. },
    15. },
    16. getters: {
    17. countAdd(state) {
    18. return state.count + 10;
    19. },
    20. },
    21. });

    4 vue3.2 项目中使用

    1. <script setup>
    2. import useCommonStore from '@/store/aa.js'
    3. import { storeToRefs } from 'pinia'
    4. const store = useCommonStore()
    5. let { man, count, countAdd, objJob } = storeToRefs(store)
    6. console.log('===== store1', store.man)
    7. console.log('===== store1', store.selMan)
    8. console.log('===== store1', store.objJobe)
    9. store.man = '哇哈'
    10. store.objJob.name2 = '对象直接.添加值'
    11. store.selMan('直接调用函数传值')
    12. store.arrLove.push('数组直接push传值')
    13. store.$patch(state => {
    14. state.arrLove.push({
    15. name1: '同城'
    16. })
    17. })
    18. // 将整个state替换
    19. const resetState = () => {
    20. store.$state = {
    21. objJob: { 世界杯: '卡塔尔' }
    22. }
    23. }
    24. script>

    5 监听state值 变化

     

  • 相关阅读:
    基于ROS的机器人模型建立及3D仿真【物理/机械意义】
    LeetCode220726_50、填充每个节点的下一个右侧节点指针
    【计算机视觉】OpenCV算法解析
    JavaScript DOM中的基本事件介绍(详细文章请看后期)
    如何通过内网穿透实现远程连接NAS群晖drive并挂载电脑硬盘?
    前端 单元测试介绍 - 以及在项目中使用 (史上最全)
    无人机覆盖路径规划综述
    el-popover 通过js手动控制弹出框显示、隐藏
    什么是线程池?
    js 深入理解原型(prototype)及如何创建对象
  • 原文地址:https://blog.csdn.net/m0_66051368/article/details/128123768