VUE3 学习笔记(12):对比Vuex与Pinia状态管理的基本理解

在组件传值中,当嵌套关系越来越复杂的时候必然会将混乱,是否可以把一些值存在一个公共位置,无须传值直接调用呢?VUEX应运而生,但是从VUE3开始对VUEX的支持就不那么高了,官方推荐使用Pinia。

Vuex配置

ST1:安装vuex

npm install --save vuex

或者

Cnpm install --save vuex

ST2:创建JS文件

目录/src/vuex(创建目录)

目录/src/vuex/index.js

import {createStore} from "vuex";
export default createStore({
    state:{
        num:100
    }
})

入口文件(main.js)

import './assets/main.css'

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './vuex'

const app = createApp(App)

app.use(router,store)

app.mount('#app')

ST3:使用数据

<template>

  <nav>
    <h3>{{ store.state.num }}</h3>
  </nav>

  <RouterView />
</template>
<script >

import store from "@/vuex/index.js";

export default {
  computed: {
    //第一种获取方法
    store() {
      return store
    }
  }

}


</script>

可能因为版本的原因,我使用...mapState(["num"]),然后页面<h3>{{num}}</h3>显示报错,这种方法理论上也是可行的,但没有成功。

新项目中创建Pinia

截止到文章发表日,官方还是推荐放弃vuex,推荐使用Pinia,可以理解Pinia是最新版的VUEX

项目创建选项

理解Pinia的核心js

自带的是组合式API,我在下面的JS代码中做了注释,请细看

位置:目录/src/stores/counter.js

import { ref, computed } from 'vue'
import { defineStore } from 'pinia'

export const useCounterStore
    = defineStore('counter', () => {
      //ref 相当于state 相当于data定义
  const count = ref(5)
  const name = ref('test')
  //计算属性 相当于getters
  const doubleCount = computed(() => count.value * 2)
  //相当于methods 相当于action
  function increment() {
    count.value++
  }
  function changeName(newName) {
  name.value = newName
}
  //最后把它作为一个对象暴露出去
  return { count,name, doubleCount, increment,changeName }
})

使用与传值

<template>
 
  <h3>{{ user.doubleCount }}</h3>
  <div>
    <button @click="user.increment">
      {{ user.name }} count is: {{ user.count }}
    </button>
  </div>
  <div>
    <button @click="user.changeName('张三')">
      修改名称
    </button>
  </div>
</template>
<script setup>
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
import {useCounterStore} from "@/stores/counter.js";
const user = useCounterStore();
</script>

为什么推荐使用Pinia

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/681090.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NGINX之location和rewrite

一.NGINX常用的正则表达式 二.Location location作用:对访问的路径做访问控制或者代理转发 1.location 常用的匹配规则&#xff1a; 进行普通字符精确匹配&#xff0c;也就是完全匹配^~ / 表示普通字符匹配。使用前缀匹配。如果匹配成功&#xff0c;则不再匹配其它 …

场外个股期权的杠杆率有多大?

场外个股期权作为金融衍生品的一种&#xff0c;为投资者在个股交易中提供了显著的杠杆效应。这种杠杆效应&#xff0c;简单来说&#xff0c;就是投资者通过较少的资金控制更大金额的投资&#xff0c;从而放大了投资收益的可能性&#xff0c;但同时也伴随着风险的增加。 文章来…

算法基础之哈希表

大家好&#xff0c;这里是教授.F 什么是哈希表&#xff1a; 哈希表其实就是数组的pro版本。数组有下标&#xff0c;每个下标对应着一个值。哈希表也类似&#xff0c;哈希表有很多哈希值&#xff0c;然后每一个哈希值都会对应着一个值。就是这样&#xff1a;hash(key) 哈希表的…

这个高考作文满分的极客,想和你聊聊新媒体写作

计育韬 曾为上海市高考作文满分考生 微信官方 SVG AttributeName 开发者 新榜 500 强运营人 复旦大学青年智库讲师 浙江传媒学院客座导师 上海团市委新媒体顾问 上海市金山区青联副主席 文案能力&#xff0c;从来就不是一蹴而就的。今天&#xff0c;来和大家聊聊当年我的…

端午档新片速递《谈判专家》领衔,每日影视作品推荐❗❗❗多部佳作待映

每日影视作品推荐一、新片速递《谈判专家》上映时间&#xff1a;2024年端午档预售情况&#xff1a;已开启预售&#xff0c;并有望成为该档期的票房冠军备注&#xff1a;据猫眼专业版数据&#xff0c;该片备受期待 《我才不要和你做朋友呢》上映时间&#xff1a;2024年端午档期预…

CSS函数: 实现数据限阈的数字函数

CSS函数中提供了几个比较实用的数字函数&#xff0c;它可以帮助我们实现一定的数学计算功能。常见的数字函数目前提供了五个&#xff1a;calc()、max()、min()和clamp()函数。其基本实现功能如下&#xff1a; calc()&#xff1a;允许在声明 CSS 属性值时执行一些计算。max()&a…

智能推荐算法应用:如何提升淘宝在线扭蛋机用户购物体验

在淘宝的在线扭蛋机平台上&#xff0c;用户的购物体验至关重要。为了提升这一体验&#xff0c;我们引入了智能推荐算法&#xff0c;帮助用户发现他们可能感兴趣的扭蛋产品。这一技术的应用不仅提高了用户的购物效率&#xff0c;还大大增强了用户的购物乐趣。 一、智能推荐算法…

Python语法详解module2(运算符、表达式、流程控制)

目录 一、运算符1. 算术运算符&#xff08;Arithmetic Operators&#xff09;2. 比较运算符&#xff08;Comparison Operators&#xff09;3. 赋值运算符&#xff08;Assignment Operators&#xff09;4. 逻辑运算符&#xff08;Logical Operators&#xff09;5. 位运算符&…

cocos creator3.7版本拖拽事件处理

前言&#xff1a;网上能找到的资料都太落后了&#xff0c;导致哥们用AI去写&#xff0c;全是瞎B写&#xff0c;版本都不对。贴点实际有用的。别老捣鼓你那破convertToNodeSpaceAR或者convertToNodeSpace了。 核心代码 touch.getDeltaX() touch.getDeltaY() 在cocoscreator3…

Python | 刷题日记

1.海伦公式求三角形的面积 area根号下&#xff08;p(p-a)(p-b&#xff09;(p-c)) p是周长的一半 2.随机生成一个整数 import random xrandom.randint(0,9)#随机生成0到9之间的一个数 yeval(input("please input:")) if xy:print("bingo") elif x<y:pri…

sql 查询 不满足 (一个教师编号 的角色 (role =‘2‘or(role=‘1‘and role =‘0‘)) )

sql 查询 不满足 &#xff08;一个教师编号 的角色 &#xff08;role 2’or&#xff08;role1’and role ‘0’&#xff09;&#xff09; &#xff09; 准备 一个 teacher 表 和数据 表 teacher 和数据 -- ---------------------------- -- Table structure for teacher -- …

[Algorithm][动态规划][回文串问题][分割回文串 II][最长回文子序列][让字符串成为回文串的最少插入次数]详细讲解

目录 1.分割回文串 II1.题目链接2.算法原理详解3.代码实现 2.最长回文子序列1.题目链接2.算法原理详解3.代码实现 3.让字符串成为回文串的最少插入次数1.题目链接2.算法原理详解3.代码实现 1.分割回文串 II 1.题目链接 分割回文串 II 2.算法原理详解 思路&#xff1a; 确定状…

现代操作系统(第四版)课后习题-4.文件系统

四、文件系统 1.给出文件/etc/passwd的五种不同的路径名 在Unix和类Unix系统中&#xff0c;/etc/passwd 是系统中所有用户账户信息的标准文件。 绝对路径&#xff1a;直接使用文件的绝对路径来访问。 /etc/passwd使用环境变量&#xff1a;如果设置了环境变量指向某个目录&…

Java中的接口与抽象类:区别与联系

Java中的接口与抽象类&#xff1a;区别与联系 在Java中&#xff0c;interface&#xff08;接口&#xff09;和abstract class&#xff08;抽象类&#xff09;是两种重要的抽象类型&#xff0c;用于定义对象的抽象行为和结构。虽然Java 8之后接口引入了默认方法和静态方法&…

磁场定向控制转速环PI调节器参数整定

前言 本章节采用工程设计的方法&#xff0c;推导转速环PI调节器参数的计算公式&#xff0c;由此来设计永磁同步电机磁场定向控制的转速外环PI调节器参数&#xff0c;并通过Matlab/Simulink对设计的PI调节器进行Bode图分析。 一、调节器的工程设计方法 要实现调节器的工程设计…

kube-promethesu新增k8s组件监控(etcd\kube-controller-manage\kube-scheduler)

我们的k8s集群是二进制部署 一、prometheus添加自定义监控与告警&#xff08;etcd&#xff09; 1、步骤及注意事项&#xff08;前提&#xff0c;部署参考部署篇&#xff09; 1.1 一般etcd集群会开启HTTPS认证&#xff0c;因此访问etcd需要对应的证书 1.2 使用证书创建etcd的…

[next.js]pwa缓存

配置Next.js (v14 App Router模式) 使其支持PWA缓存&#xff0c;配置server worker和mainfest.json&#xff0c;让项目支持离线访问和可安装。 安装依赖next-pwa npm i next-pwa配置next.config.js const path require(path);const withPWAInit require(next-pwa);// 判断…

俄罗斯人有哪些常用的口头禅,柯桥零基础俄语培训

Хватит! 够了&#xff01; -Хватит, не стоит больше шуметь! 够了, 不要再吵了! -Это тебя не касается! 这与你无关&#xff01; Блин! 靠&#xff01; Блин这个词绝对是俄罗斯人最爱用的口语表达之一&#xff0c;…

给快高考的儿子的一封信:关于选择计算机专业

亲爱的儿子&#xff0c; 你好&#xff01; 时间过得真快&#xff0c;转眼间你就要高考了&#xff0c;这不仅是你人生中的一个重要时刻&#xff0c;也是我们全家都非常关注的节点。妈妈告诉我&#xff0c;你对计算机专业很感兴趣&#xff0c;希望我能给你一些建议。我很高兴听…

阿里云邮件推送配置教程:有哪些关键步骤?

阿里云邮件推送服务如何配置&#xff1f;如何设置SMTP服务器&#xff1f; 阿里云作为国内领先的云服务提供商&#xff0c;其邮件推送服务具有高效、稳定和可靠的特点&#xff0c;因此备受企业青睐。Aok将介绍阿里云邮件推送配置教程的关键步骤&#xff0c;并简要提及AokSend的…