位置: IT常识 - 正文

Vue3中使用pinia(vue3中使用require)

编辑:rootadmin
Vue3中使用pinia

目录

1、安装:npm install pinia

2、创建store文件并配置内部的index.js文件

3、main.js文件中配置

4、组件使用

4-1、 store.$reset()  

 4-2 store.$patch

 5.订阅修改

6.Getter

7、Actions


1、安装:npm install pinia2、创建store文件并配置内部的index.js文件import { defineStore } from 'pinia' //引入pinia//这里官网是单独导出 是可以写成默认导出的 官方的解释为大家一起约定仓库用use打头的单词 固定统一小仓库的名字不易混乱export const useCar=defineStore("test",{ state: () =>{return ({msg:"这是pinia的数据",name:"小狮子",age:18}) //为了避免出错,返回的值用()包起来} })3、main.js文件中配置import { createApp } from 'vue'import App from './App.vue'const app=createApp(App)import { createPinia } from 'pinia' //引入piniaapp.use(createPinia())app.mount('#app') 4、组件使用<template><h1>aaa--{{store.msg}}----{{store.name}}--{{store.age}}</h1><button @click="change1">修改store.name</button><router-view></router-view></template><script setup>import {useCar} from "../store/index.js" //将之前配置的pinia文件夹中的index.js文件引入let store=useCar() //接收 console.log(store)let change1=()=>{store.name="小羊" //修改pinia里面的数据 console.log(store.name)}</script><style scoped>h1{width: 400px; height:200px;background-color:deeppink;}</style>

推荐整理分享Vue3中使用pinia(vue3中使用require),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3中使用require,vue3使用教程,vue3中使用window方法,vue3中使用jsx,vue3中使用jsx,vue3中使用gis地图,vue3中使用gis地图,vue3中使用require,内容如对您有帮助,希望把文章链接给更多的朋友!

效果图

 点击按钮,界面变化

 说明成功修改了pinia里面的数据,且界面刷新证明这种直接修该pinia数据的方式依然是响应式数据。

但如果在接收pinia数据时,进行解构则不再是响应式数据,需要使用toRefs

toRefshttp://t.csdn.cn/pLB5f

4-1、 store.$reset()  

将状态 重置 到其初始值

当我们接收到pinia数据且对其数据进行了大量修改又想还原时,调用此方法就可以将接收的pinia数据全部重置还原

Vue3中使用pinia(vue3中使用require)

注意:store.$reset() 中的store是自己设定的接收变量,重点是 .$reset()  

<template><h1>aaa--{{store.msg}}----{{store.name}}--{{store.age}}</h1><button @click="change1">修改store.name</button><button @click="reset">reset</button><router-view></router-view></template><script setup>import {useCar} from "../store/car.js"let store=useCar() console.log(store)let change1=()=>{store.name="小羊"console.log(store.name)}let reset=()=>{ //初始化pinia数据store.$reset()}</script><style scoped>h1{width: 400px; height:200px;background-color:deeppink;}</style>

在之前的案例中修改了pinia的name属性值

 此时我们点击reset按钮,则会重置pinia的所有数据

 

 4-2 store.$patch

群体修改,可以将pinia的数据进行同一修改

特点:批量修改但状态只刷新一次

<template><h1>aaa--{{store.msg}}----{{store.name}}--{{store.age}}</h1><button @click="change1">修改store.name</button><button @click="reset">reset</button><button @click="fn">fn</button><router-view></router-view></template><script setup>import {useCar} from "../store/car.js"let store=useCar() console.log(store)let change1=()=>{store.name="小羊"console.log(store.name)}let reset=()=>{ //重置store.$reset()}function fn(){//批量修改store.$patch({ name:"小羊", age:20,})}</script><style scoped>h1{width: 400px; height:200px;background-color:deeppink;}</style>

 

 点击fn按钮后

说明批量修改成功

 5.订阅修改//可以通过 store 的 $subscribe() 方法查看状态及其变化,通过patch修改状态时就会触发一次store.$subscribe((mutation, state) => { // 每当它发生变化时,将整个状态持久化到本地存储 localStorage.setItem('test', JSON.stringify(state))})6.Getter

Getter 完全等同于 Store 状态的 计算值。 它们可以用 defineStore() 中的 getters 属性定义。 他们接收“状态”作为第一个参数以鼓励箭头函数的使用:(ps:虽然鼓励但是依然提供了非es6玩家的使用方式 内部可以用this代表state)

//store/index.js文件export const useStore = defineStore('main', { state: () => ({ counter: 0, }), getters: { doubleCount: (state) => state.counter * 2, },})//组件中直接使用: <p>Double count is {{ store.doubleCount }}</p>7、Actions

在pinia中没有提供mutaion 因为Actions就够了(它可以异步同步的统一修改状态)

之所以提供这个功能 就是为了项目中的公共修改状态的业务统一

export const useStore = defineStore('main', { state: () => ({ counter: 0, }), actions: { increment() { this.counter++//1.有this }, randomizeCounter(state) {//2.有参数 想用哪个用哪个 state.counter = Math.round(100 * Math.random()) }, randomizeCounter(state) { //异步函数 axios("/test").then(res=>{ state.counter = res.data.length }) } },})//组件中的使用: setup() { const store = useStore() store.increment() store.randomizeCounter() }
本文链接地址:https://www.jiuchutong.com/zhishi/285088.html 转载请保留说明!

上一篇:avpm.exe是什么进程 avpm进程是安全的吗(电脑avc是什么意思)

下一篇:最早的操作系统是什么(最早的操作系统被称为什么操作系统)

  • 细节设计上把握用户的从众心理,往往能收到意想之外的收获。(细节设计的重要性)

    细节设计上把握用户的从众心理,往往能收到意想之外的收获。(细节设计的重要性)

  • oppok9s怎么隐藏软件(oppok9s怎么隐藏应用)

    oppok9s怎么隐藏软件(oppok9s怎么隐藏应用)

  • dmov是什么指令(plc基础知识指令27个)

    dmov是什么指令(plc基础知识指令27个)

  • 华为nova4和nova5i区别(华为nova4和nova5i手机壳一样吗)

    华为nova4和nova5i区别(华为nova4和nova5i手机壳一样吗)

  • 单反相机wb是什么意思(单反相机WB是什么意思)

    单反相机wb是什么意思(单反相机WB是什么意思)

  • 抖音井号作用(抖音里加井号)

    抖音井号作用(抖音里加井号)

  • 华为下方三个图标按键怎么设置(华为下方三个图标按键不见了)

    华为下方三个图标按键怎么设置(华为下方三个图标按键不见了)

  • iphonese2支持无线充电吗(苹果se2可以无线)

    iphonese2支持无线充电吗(苹果se2可以无线)

  • ipad版qq可以屏幕共享吗(ipad用qq不是全屏)

    ipad版qq可以屏幕共享吗(ipad用qq不是全屏)

  • lon-al00是华为什么型号手机(lon-al00是华为什么型号手r)

    lon-al00是华为什么型号手机(lon-al00是华为什么型号手r)

  • soul一般禁言多久(soul禁言是什么情况)

    soul一般禁言多久(soul禁言是什么情况)

  • opporeno3pro电池不耐用(opporeno3pro电池不耐用充电快)

    opporeno3pro电池不耐用(opporeno3pro电池不耐用充电快)

  • qq冻结7天后能正常使用吗(qq冻结7天后能正常聊天吗)

    qq冻结7天后能正常使用吗(qq冻结7天后能正常聊天吗)

  • 在outlook的服务器设置中POP3协议是指(在outlook的服务器设置中SMTP协议设置)

    在outlook的服务器设置中POP3协议是指(在outlook的服务器设置中SMTP协议设置)

  • vivoz3支不支持无线充电(vivoz3支持wifi5g协议吗)

    vivoz3支不支持无线充电(vivoz3支持wifi5g协议吗)

  • 流光快门怎么拍清楚人(流光快门怎么拍摄)

    流光快门怎么拍清楚人(流光快门怎么拍摄)

  • iphone11蜂窝网络怎么设置(iphone11蜂窝网络慢)

    iphone11蜂窝网络怎么设置(iphone11蜂窝网络慢)

  • 支付宝怎么开刷脸支付(支付宝怎么开刷呢)

    支付宝怎么开刷脸支付(支付宝怎么开刷呢)

  • 抖音怎么清除艾特记录(抖音怎么清除艾特)

    抖音怎么清除艾特记录(抖音怎么清除艾特)

  • usb和usb-c区别(usbc和usbtype-c的区别)

    usb和usb-c区别(usbc和usbtype-c的区别)

  • 拼多多怎么看一共消费(拼多多怎么看一年消费多少)

    拼多多怎么看一共消费(拼多多怎么看一年消费多少)

  • 魅族m15屏幕(魅族m15屏幕材质)

    魅族m15屏幕(魅族m15屏幕材质)

  • 荣耀play可以分屏吗(荣耀play能分屏吗)

    荣耀play可以分屏吗(荣耀play能分屏吗)

  • 苹果xs max后面是玻璃能换吗(苹果xs max后面是什么材质)

    苹果xs max后面是玻璃能换吗(苹果xs max后面是什么材质)

  • 网易考拉如何登录账号(网易考拉账号可以登几个人)

    网易考拉如何登录账号(网易考拉账号可以登几个人)

  • win10怎么显示文件后缀名(Win10怎么显示文件类型)

    win10怎么显示文件后缀名(Win10怎么显示文件类型)

  • vue3 响应式 API 之 ref(vue3 响应式ui框架)

    vue3 响应式 API 之 ref(vue3 响应式ui框架)

  • 装修收入应如何确定
  • 计提本月应交增值税怎么做账
  • 月末一般无余额的有
  • 需要冲红的普通发票无法收回怎么办
  • 企业员工的高铁票进项税如何申报
  • 购销合同赔偿比例一般多少
  • 其他收益科目账务处理
  • 三栏式和多栏式的账目有哪些
  • 关于外债利息的规定
  • 劳务费的专用发票有哪些
  • 营改增租金收入税率
  • 简易计税的应交所得税
  • 广告费用的增值税税率
  • 社保基数调整补收是什么意思
  • 开专票附加8个税点怎么计算?
  • 电信报表系统
  • 以前年度费用本年开发票
  • 所有的固定资产都有残值率吗
  • 公司车辆怎么处理
  • 企业所得税汇算清缴
  • 汇票和本票之间在使用上有什么差别
  • 什么情况增值税专用发票不能抵扣
  • 地毯属于什么类别垃圾分类
  • 个人到税局开具发票流程
  • 按照税收一般规定计算的折旧摊销金额
  • 出口退税申报时间限制
  • 收到往来款的账务处理
  • 当月扣缴社保需要申报吗
  • h3c路由配置教程
  • 民办非企业年底额度不能低于多少
  • 公司购买的机票赔偿可以退公司嘛
  • 如何查询苹果手机充电次数
  • 在win7中,如何将所有窗口进行层叠排列显示
  • 存出投资款要计入现金流吗
  • linux删除文本文件命令
  • 收到短期借款会计分录怎么做
  • 农产品销售发票抵扣政策
  • 沃特金斯格伦州立公园
  • 旧设备换新设备会计分录
  • php处理并发有哪些技术
  • 销售金额较大多少算较大
  • php自动化脚本
  • uniapp中uni.navigateTo传递变量
  • speedtest教程
  • php微信公众号商城源码
  • 增值税发票抵扣联和发票联
  • Python怎么把数据倒着输出
  • JavaWeb之Servlet
  • 手把手的教
  • ubuntu16安装教程
  • 织梦开发教程
  • 民办非企业单位属于什么类型
  • 耕地占用税如何计算
  • 民非企业是否可以做酒
  • 合并资产负债表图片
  • 个体户核定征收超过了怎么办
  • 注册资金认缴期限一般多少
  • 已抵扣发票红冲做进项税转出
  • 购买方已认证销售方能开红字信息表吗
  • 收到实收资本的现金流
  • 虚开发票但是没有成本如何做账?
  • 小规模30万含专票吗
  • 小规模升级一般纳税人有什么好处
  • sqlserver使用方法
  • xp如何把ie浏览器设置为默认浏览器
  • win8系统怎么做系统
  • 如何在ubuntu上安装软件
  • window打开
  • url是什么文件怎么打开
  • win7 24小时制
  • unity打包安卓apk
  • unity c#开发
  • android 签名文件冲突
  • linux如何剪切文件
  • jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
  • 登录""增值税发票选择确认平台""时提示""打开设备
  • 审批制改为备案制有什么区别
  • 党员逝世可否盖党旗
  • 国家税务总局河北地税局
  • 普通发票每个月有限制吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设