iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue3中怎么引入Pinia存储库并使用
  • 915
分享到

Vue3中怎么引入Pinia存储库并使用

2023-07-05 17:07:24 915人浏览 泡泡鱼
摘要

本篇内容主要讲解“vue3中怎么引入Pinia存储库并使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3中怎么引入Pinia存储库并使用”吧!用自己最喜欢的方式安装yarn a

本篇内容主要讲解“vue3中怎么引入Pinia存储库并使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Vue3中怎么引入Pinia存储库并使用”吧!

用自己最喜欢的方式安装

yarn add pinia# 或者使用 npmnpm install pinia

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')

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

import { defineStore } from 'pinia' //引入pinia //这里官网是单独导出  是可以写成默认导出的  官方的解释为大家一起约定仓库用use打头的单词 固定统一小仓库的名字不易混乱export const useCar=defineStore("test",{     state: () =>{        return  ({            msg:"这是pinia",            name:"小小",            age:18            }) //为了避免出错,返回的值用()包起来    } })

组件使用方法

<template>    <h2>{{store.msg}}{{store.name}}{{store.age}}</h2>    <button @click="modify">修改store.name</button></template> <script>import { defineComponent, ref } from 'vue';import {  Reactive,  toRefs,  onMounted,  onActivated} from "vue";import {useCar} from "../store/index.js" //将之前配置的pinia文件夹中的index.js文件引入export default defineComponent({  let store=useCar() //接收  setup() {    const state = reactive({      testMsg: "原始值",    });    onMounted(async () => {});    onActivated(() => {})    const methods = {        modify(){             store.name = state.testMsg //修改pinia里面的数据             console.log(store.name)        }    };    return {      ...toRefs(state),      ...methods,    };  }})</script>

重置store.$reset()

<template>    <h2>{{store.msg}}{{store.name}}{{store.age}}</h2>    <button @click="reset">重置store.name</button></template> <script>import { defineComponent, ref } from 'vue';import {  reactive,  toRefs,  onMounted,  onActivated} from "vue";import {useCar} from "../store/index.js" //将之前配置的pinia文件夹中的index.js文件引入export default defineComponent({  let store=useCar() //接收  setup() {    const state = reactive({      testMsg: "原始值",    });    onMounted(async () => {});    onActivated(() => {})    const methods = {        reset(){             store.$reset() //重置pinia里面的数据             console.log(store.name)        }    };    return {      ...toRefs(state),      ...methods,    };  }})</script>

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

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

<template>    <h2>{{store.msg}}{{store.name}}{{store.age}}</h2>    <button @click="modify">修改store.name</button>    <button @click="reset">重置store.name</button>    <button @click="allModify">群体修改store.name</button></template> <script>import { defineComponent, ref } from 'vue';import {  reactive,  toRefs,  onMounted,  onActivated} from "vue";import {useCar} from "../store/index.js" //将之前配置的pinia文件夹中的index.js文件引入export default defineComponent({  let store=useCar() //接收  setup() {    const state = reactive({      testMsg: "原始值",    });    onMounted(async () => {});    onActivated(() => {})    const methods = {        modify(){             store.name = state.testMsg //修改pinia里面的数据             console.log(store.name)        },        reset(){             store.$reset() //重置pinia里面的数据             console.log(store.name)        },        allModify(){             store.$patch({              name:"花花",              age:20,            })        }    };    return {      ...toRefs(state),      ...methods,    };  }})</script>

订阅修改

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

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>

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) {        //异步函数.接口成功赋值     ajax.hplBaseapi("app/productSelection/cateGoryRows", {}, "post").then((res) => {        state.counter = res.data.length     });    }  },}) //组件中的使用:  setup() {    const store = useStore()    store.increment()    store.randomizeCounter()  }

到此,相信大家对“Vue3中怎么引入Pinia存储库并使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Vue3中怎么引入Pinia存储库并使用

本文链接: https://www.lsjlt.com/news/353562.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue3中怎么引入Pinia存储库并使用
    本篇内容主要讲解“Vue3中怎么引入Pinia存储库并使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3中怎么引入Pinia存储库并使用”吧!用自己最喜欢的方式安装yarn a...
    99+
    2023-07-05
  • Vue3中如何引入Pinia存储库并使用
    今天小编给大家分享一下Vue3中如何引入Pinia存储库并使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。用自己最喜欢的方...
    99+
    2023-07-06
  • Vue3状态管理之Pinia怎么使用
    这篇文章主要介绍“Vue3状态管理之Pinia怎么使用”,在日常操作中,相信很多人在Vue3状态管理之Pinia怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3状态管理之Pinia怎么使用”的疑...
    99+
    2023-06-30
  • Vue3中怎么引入Ant Design
    这篇文章主要介绍“Vue3中怎么引入Ant Design”,在日常操作中,相信很多人在Vue3中怎么引入Ant Design问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中怎么引入...
    99+
    2023-07-06
  • 怎么使用.NET 6开发TodoList应用引入数据存储
    本篇内容主要讲解“怎么使用.NET 6开发TodoList应用引入数据存储”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用.NET 6开发TodoList应用引入数据存...
    99+
    2023-06-22
  • Cassandra中使用的存储引擎是什么
    Cassandra使用了自己的存储引擎,称为Cassandra Query Language (CQL)。CQL是一种类似于SQL的...
    99+
    2024-04-02
  • MongoDB中如何使用inMemory存储引擎
    本篇文章为大家展示了MongoDB中如何使用inMemory存储引擎,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、MongoDB的存储引擎概述存储引擎(Stor...
    99+
    2024-04-02
  • Mysql中如何使用MERGE存储引擎
    本篇文章为大家展示了Mysql中如何使用MERGE存储引擎,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MERGE 存储引擎把一组 MyISAM 数据表当做一个逻辑...
    99+
    2024-04-02
  • MySQL数据库中存储引擎的作用是什么
    这篇文章将为大家详细讲解有关MySQL数据库中存储引擎的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  MySQL数据库各种存储引擎作用有哪些 ...
    99+
    2024-04-02
  • MySQL中怎么设置存储引擎
    今天就跟大家聊聊有关MySQL中怎么设置存储引擎,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL设置存储引擎 1)查询存储引擎l ...
    99+
    2024-04-02
  • Mysql数据库中的存储引擎是什么
    这篇文章主要介绍了Mysql数据库中的存储引擎是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql数据库中的存储引擎是什么文章都会有所收获,下面我们一起来看看吧。存储...
    99+
    2023-04-03
    mysql
  • Cassandra使用的存储引擎是什么
    Cassandra使用的是自己开发的存储引擎,称为Cassandra Query Language (CQL)。CQL是一种基于SQ...
    99+
    2024-04-09
    Cassandra
  • SQL Server存储过程(数据库引擎)使用详解
    存储过程(数据库引擎) 一、背景知识1.1、使用存储过程的好处1.2、存储过程的类型 二、创建存储过程三、修改存储过程四、删除存储过程五、执行存储过程5.1、建议5.2、使用 Transa...
    99+
    2023-10-01
    数据库 sql 服务器 sqlserver 大数据
  • Innodb中怎么查询存储引擎查
    本篇文章给大家分享的是有关Innodb中怎么查询存储引擎查,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。源码分析查询于存储引擎的实现密切相关,...
    99+
    2024-04-02
  • MySQL中怎么使用存储过程
    MySQL中怎么使用存储过程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 mysql存储过程存储过程(Stored  P...
    99+
    2024-04-02
  • Java数据库程序中的存储过程怎么使用
    这篇文章主要介绍“Java数据库程序中的存储过程怎么使用”,在日常操作中,相信很多人在Java数据库程序中的存储过程怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java数据库程序中的存储过程怎么使用...
    99+
    2023-06-17
  • MyBatis中怎么使用存储过程
    在 MyBatis 中使用存储过程可以通过以下步骤实现: 定义存储过程:首先在数据库中定义存储过程,可以使用 SQL 来创建存储...
    99+
    2024-05-08
    MyBatis
  • C#中怎么读取Excel文件并存入数据库
    C#中怎么读取Excel文件并存入数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 protected void Page_Load(obje...
    99+
    2023-06-18
  • mysql中怎么修改默认存储引擎
    mysql中怎么修改默认存储引擎,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。修改mysql的默认存储引擎 1、查看mysql存储引...
    99+
    2024-04-02
  • .NET 6开发TodoList应用中如何引入数据存储
    小编给大家分享一下.NET 6开发TodoList应用中如何引入数据存储,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一.需求作为后端CRUD程序员(bushi,数据存储是开发后端服务一个非常重要的组件。对我们的...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作