位置: IT常识 - 正文

Pinia(二)了解和使用Store

编辑:rootadmin
Pinia(二)了解和使用Store StoreStore 是保存状态(state)和业务逻辑的实体, store 不应该与我们的组件绑定. 换句话说, store 就是全局状态.store 有三个关键概念, 分别是 state, getters 和 actions, 这与 Vue 组件中的 data, computed 和 methods 是相对应的概念.定义 store通过 defineStore 函数定义 store.defineStore 接收两个参数

id: 唯一的标识, string 类型. Pinia 使用 id 与开发者工具建立联系.第二个参数可以是一个函数, 也可以是一个对象.defineStore 返回一个函数, 一般约定将返回值命名为 use....第二个参数: 对象类型如果要传入对象类型作为第二个参数, 在对象中可以配置state: 状态, 即数据. 📕注意 state 是一个函数, 函数的返回值才是真正定义的数据getters: 计算属性actions: 修改状态的方法export const useCounterStore = defineStore('counter', { state: () => { return { count: 0, } }, getters: { doubleCount: (state) => { return state.count * 2; } }, actions: { increment(a: number) { this.count += a } }})第二个参数: 函数类型在函数中可以通过 ref/reactive 定义响应式数据, 通过 computed 和 watch 定义计算属性和侦听器, 再定义一些修改数据的方法, 并通过返回对象的形式将其中一些数据暴露出去.import { defineStore } from 'pinia';import { ref } from 'vue';export const useNameStore = defineStore('name', () => { const name = ref('tom'); function setName(newName: string) { name.value = newName; } return { name, setName }});使用 store

推荐整理分享Pinia(二)了解和使用Store,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

无论定义 store 时传入的参数是对象类型还是函数类型, 调用方法一致的. 我们需要在 setup() 函数或 <script setup> 中使用

import { useCounterStore } from '../store';import { useNameStore } from '../store/index2'// 第一个store: countconst store = useCounterStore();function countPlus() { store.increment(1);}// 第二个store: nameconst name1 = useNameStore();function updateName1() { name1.setName('jerry1' + Math.random())}

📕store 实例并不会被创建直到调用 useNameStore()

可以直接通过 store. 的方式访问 store 的 state, 和

<h2>{{store.count}}</h2><button @click="countPlus">countPlus</button><hr><h2>{{ name1.name }}</h2><button @click="updateName1">updateName1</button>

Pinia(二)了解和使用Store

📕注意修改数据时, 页面并没有失去响应式, 调用 isProxy 可以看出 use... 返回的结果统统都是响应式的数据

失去响应式的陷阱

如果解构 use.. 的返回值, 那么将失去响应式❗❗❗❗❗const { name, setName } = useNameStore();function updateName() { setName('jerry' + Math.random());}<h2>{{ name }}</h2><button @click="updateName">updateName</button>

storeToRefs

为了从 store 中解构出属性并且保持其响应式, 需要调用 storeToRefs. storeToRefs 将为每个响应式数据创建 ref.先看传入函数类型的 storeconst nameStore2 = storeToRefs(useNameStore());console.log('nameStore2', nameStore2)

📕注意返回的 storeToRefs 返回的对象中只有 name, 而没有 setName, 因此完整的写法应该是

const nameStore = useNameStore();const { setName } = nameStore;const { name } = storeToRefs(useNameStore());再看传入对象类型的 storeconst store = useCounterStore();const countStore2 = storeToRefs(store)console.log('countStore2', countStore2);

📕只有 state 和 getters, 没有 actions, 因此要从 useCounterStore() 的返回值中解构出 actions 中的方法

const store = useCounterStore();const { count, doubleCount } = storeToRefs(store);const { increment } = store;function countPlus1() { increment(2);}

感谢你看到这里😀

本文链接地址:https://www.jiuchutong.com/zhishi/293077.html 转载请保留说明!

上一篇:前端401错误 & 解决方法:响应拦截器(前端报405错误)

下一篇:HTML + CSS + JavaScript 实现注册页面信息验证 详细教程(表单验证)(htmlcssjavascript网页制作)

  • 如何解除qq绑定的手机号(如何解除qq绑定的应用)

    如何解除qq绑定的手机号(如何解除qq绑定的应用)

  • apple watch公交卡怎么充值(apple watch公交卡充值)

    apple watch公交卡怎么充值(apple watch公交卡充值)

  • 会话已过期请重新登录怎么办(会话已过期请重新打开是什么原因)

    会话已过期请重新登录怎么办(会话已过期请重新打开是什么原因)

  • 如何让对方短信显示发送失败(如何让对方短信和微信发不出去)

    如何让对方短信显示发送失败(如何让对方短信和微信发不出去)

  • 华为P40充电速度(华为p40充电速度慢)

    华为P40充电速度(华为p40充电速度慢)

  • 视频美颜打开了为什么还是没有美颜(打开视频美颜相机)

    视频美颜打开了为什么还是没有美颜(打开视频美颜相机)

  • xsmax无线充电多少w(xsmax无线充电多少)

    xsmax无线充电多少w(xsmax无线充电多少)

  • 手机进水竖纹会自动消失吗(手机进水竖条纹)

    手机进水竖纹会自动消失吗(手机进水竖条纹)

  • 新手机的电池是不是第一次要用完(新手机的电池是多少伏)

    新手机的电池是不是第一次要用完(新手机的电池是多少伏)

  • airpods一打电话就断开(airpods为什么打电话就断)

    airpods一打电话就断开(airpods为什么打电话就断)

  • 苹果6s手机手电筒在哪(苹果6手电在哪里)

    苹果6s手机手电筒在哪(苹果6手电在哪里)

  • 手机电话响了屏幕不亮(电话响了屏幕上什么都没有)

    手机电话响了屏幕不亮(电话响了屏幕上什么都没有)

  • 手机拍照hdr是什么功能(手机拍照HDR是什么模式)

    手机拍照hdr是什么功能(手机拍照HDR是什么模式)

  • 手机闪退是怎么回事(手机闪退是怎么办)

    手机闪退是怎么回事(手机闪退是怎么办)

  • watch gt2怎么使用手电筒(watch gt2设置在哪)

    watch gt2怎么使用手电筒(watch gt2设置在哪)

  • 打印机怎么上墨粉(打印机怎么上墨水视频)

    打印机怎么上墨粉(打印机怎么上墨水视频)

  • qq预设账号上限怎么删(qq预设账号上限怎么解除)

    qq预设账号上限怎么删(qq预设账号上限怎么解除)

  • 手机非合约机是什么意思

    手机非合约机是什么意思

  • 快手从哪里取消特别关注(快手从哪里取消关注的人)

    快手从哪里取消特别关注(快手从哪里取消关注的人)

  • oppo手机能连打印机吗(oppo手机能连打印机打印东西吗)

    oppo手机能连打印机吗(oppo手机能连打印机打印东西吗)

  • 攀牙湾安达曼海的红树林,泰国 (© Ratnakorn Piyasirisorost/Getty Images)(缅甸安达曼海)

    攀牙湾安达曼海的红树林,泰国 (© Ratnakorn Piyasirisorost/Getty Images)(缅甸安达曼海)

  • 【python量化】大幅提升预测性能,将NSTransformer用于股价预测(python 量化)

    【python量化】大幅提升预测性能,将NSTransformer用于股价预测(python 量化)

  • React Hook - useState函数的详细解析

    React Hook - useState函数的详细解析

  • ps用于调色的工具有哪些(ps调色的作用)

    ps用于调色的工具有哪些(ps调色的作用)

  • 增值税发票勾选确认后可以撤销吗
  • 业务招待费的财务分录
  • 应税劳务的主要成本包括
  • 合伙企业所得税怎么征收
  • 新公司税务报到网上操作流程
  • 税务行政复议包括必须复议自由复议和选择复议三种类型
  • 房产税土地使用税新政策消息2023
  • 其他应付款借方余额怎么调整
  • 服务费可以计入办公费吗
  • 企业发生的职工培训费应计入产品的制造成本
  • 企业所得税的利润总额是利润表中的哪个数
  • 销售开红字的账务处理
  • 运费客户承担钱销售员垫付冲应收怎么处理?
  • 出口商品一定要有条形码吗
  • 刷卡手续费可以开经纪代理服务费吗
  • 会计人员应掌握的知识
  • 金税盘不交年费可以正常使用吗
  • 预估材料入账后冲回的步骤
  • 代缴水电费是什么意思
  • 出口退税增值税发票稽核信息
  • 应收票据背书转让以取得所需物资
  • 个人在杂志上发表散文取得的所得
  • 暂估入库借方有余额怎么处理
  • kb5001028补丁
  • 怎么用苹果电脑查找苹果手机
  • 在建工程变更建设单位
  • 把桌面文件放到虚拟机
  • php array_replace
  • 公司出售已经提完折旧的机器
  • TypeError: Cannot read properties of undefined (reading ‘NAME‘)报错解决
  • 提坏账准备的调整分录
  • jmcacdefg什么意思
  • 中国网购软件
  • /locate village村庄
  • php上传文件到指定目录
  • 企业所得税扣除限额标准
  • php反射的原理
  • php多条件搜索功能的实现
  • Joomla调用系统自带编辑器的实现方法
  • linux中php的作用
  • 数字图像处理实验一实验报告
  • 最新前端技术
  • thinkphp3.0
  • 存续分立会计处理原则
  • 电话订票起售时间
  • 分公司要不要银行开户
  • 资产负债表中的货币资金怎么算
  • 汇票贴现是什么
  • 个人所得税计算器公式
  • 开专用发票可以直接写加工费这个明细吗?
  • 运输途中发生的合理损失
  • 小规模企业所得税怎么征收
  • 加计抵减不符合怎么办
  • 企业技术转让会计分录
  • 零售业赠送给别人怎么做
  • 研发费用计入营业成本还能加计扣除吗
  • 财产租赁合同印花税怎么缴纳
  • ubuntu20.04
  • sql server错误和使用情况报告
  • mysql分页效率
  • xp win10 打印机
  • centos如何删除用户组里面的用户
  • 怎么备份和恢复goodnotes中的数据
  • win10 win8.1
  • win8如何进入metro界面
  • 简单掌握办公软件怎么写
  • perl计算时间差
  • opengl3d
  • unity 调用java
  • angularjs内置了很多有用的服务
  • jquery animate源码
  • web jquery
  • 简单的安卓代码
  • 刚开始学java的心得体会
  • python爬虫快速入门
  • HttpClient.execute() 阻塞问题
  • 省市区json
  • 电子税务局季度利润表本月数
  • 合伙企业的税收较高
  • 广东省电子税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设