pinia在vue3中的使用

这篇具有很好参考价值的文章主要介绍了pinia在vue3中的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

总结:

在store文件夹中建一个pinia的文件userStore.js

1.要想使用pinia必须先引入defineStore  这里我们使用es6的模块化语法导出的

  import { defineStore } from 'pinia'

2.然后使用export const useUserStore = defineStore('user',{})

  defineStore 方法有两个参数,第一个参数是模块化名字(也就相当于身份证一样,不能重复

  第二个参数是选项,对象里面有三个属性,相比于vuex 少了一个 mutations

3.state(){return{ }}  是一个函数返回一个对象,对象里面就是可以共享的状态

4.getters:{ } 是一个对象,可以定义类型计算数据的函数,直接用来当变量使用相当于vue里面的计算属性,可以缓存数据

5.actions:{ } 是一个对象,可以定义方法修改state里面的数据可以是异步,也可以是同步

在components中建一个User.vue文件

1.引入import { useUserStore } from '../store/userStore'

2.值得注意的是useUserStore是一个 方法,调用之后会给我们返回一个对象,这个时候页面上就能正常显示我们在userStore.js里面的state里面定义的firstName、lastName、gender、age

const user = useUserStore()

userStore.js 

// 要想使用pinia必须先引入defineStore  这里我们使用es6的模块化语法导出的
import { defineStore } from 'pinia'
// defineStore 方法有两个参数,第一个参数是模块化名字(也就相当于身份证一样,不能重复)
// 第二个参数是选项,对象里面有三个属性,相比于vuex 少了一个 mutations
export const useUserStore = defineStore('user', {
    // 定义共享状态
    state() {  //是一个函数返回一个对象,对象里面就是可以共享的状态
        return {
            firstName: '张',
            lastName: '三',
            gender: '女',
            age:12
        }
    },
    // getters是一个对象,可以定义类型计算数据的函数,直接用来当变量使用
    // 相当于vue里面的计算属性,可以缓存数据
    getters: {
        fullName() {
            return this.firstName+this.lastName+this.age
        }
    },
    // actions 是一个对象,可以定义方法修改state里面的数据
    // 可以是异步,也可以是同步
   actions: {
       changeFirstName(payload) {
           this.firstName = payload
       },
        changeLastName(payload) {
           this.lastName = payload
       },
        changeAge(payload) {
             setTimeout(() => {
                 this.age = payload
            },3000)
       } 
   }
})

 User.vue

<template>
  <h1>修改用户信息</h1>
  <input type="text" v-model="firstName">
  <button @click="updatefirst">修改firstName</button>
  <input type="text" v-model="lastName">
  <button @click="updateLast">修改lastName</button>
  <input type="text" v-model="age">
  <button @click="updateAge">修改age</button>
    {{ user.fullName}}
  <hr>
    {{ user.firstName }}
    {{ user.lastName }}
    {{ user.gender }}
    {{ user.age }}
</template>

<script setup>
import { ref, reactive } from 'vue';
import { useUserStore } from '../store/userStore'

// 值得注意的是useUserStore是一个 方法,调用之后会给我们返回一个对象
// 这个时候页面上就能正常显示我们在userStore.js里面的state里面定义的firstName、lastName、gender、age
const user = useUserStore()

const firstName = ref('')
const lastName = ref('')
const age = ref('')

// 定义一个方法
const updatefirst=() => {
    user.changeFirstName(firstName.value)
}
const updateLast = () => {
  user.changeLastName(lastName.value)
}
const updateAge = () => {
  user.changeAge(age.value)
}
</script>

<style scoped>

</style>

pinia在vue3中的使用,vue.js,javascript,前端文章来源地址https://www.toymoban.com/news/detail-614127.html

到了这里,关于pinia在vue3中的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3.0 vue.js.devtools无法显示Pinia调试工具

    之前的配置方式: 更新配置方式: 设置之后即可显示调试工具

    2024年03月11日
    浏览(55)
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第2篇:什么是pinia,1. 创建空Vue项目【附代码文档】

    Pinia 是 Vue 的专属状态管理库,可以实现跨组件或页面共享状态,是 vuex 状态管理工具的替代品,和 Vuex相比,具备以下优势 提供更加简单的API (去掉了 mutation ) 提供符合组合式API风格的API (和 Vue3 新语法统一) 去掉了modules的概念,每一个store都是一个独立的模块 搭配

    2024年03月21日
    浏览(48)
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第1篇:认识Vue3,1. Vue3组合式API体验【附代码文档】

    通过 Counter 案例 体验Vue3新引入的组合式API 特点: 代码量变少 分散式维护变成集中式维护 ![image.png]( create-vue是Vue官方新的脚手架工具,底层切换到了 vite (下一代前端工具链),为开发提供极速响应 ![image.png]( 前置条件 - 已安装16.0或更高版本的Node.js 执行如下命令,这一指

    2024年03月17日
    浏览(57)
  • 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 效果图  点击按钮,界面变化  说明成功修改了pinia里面的数据,且界面刷新证明这种直接修该pinia数据的方式

    2024年02月07日
    浏览(41)
  • Vite-Admin后台管理系统|vite4+vue3+pinia前端后台框架实例

    基于 vite4.x+vue3+pinia 前端后台管理系统解决方案 ViteAdmin 。 前段时间分享了一篇vue3自研pc端UI组件库VEPlus。这次带来最新开发的基于 vite4+vue3+pinia 技术栈搭配ve-plus组件库构建的中后台权限管理系统框架。 支持vue-i18n国际化多语言、动态路由鉴权、4种布局模板及tab页面缓存 等功

    2023年04月13日
    浏览(87)
  • vue3探索——pinia高阶使用

    以下是一些 Pinia 的其他高阶功能: storeToRefs() :响应式解构仓库,保证解构出来的数据是响应式的数据。 状态持久化 :Pinia 并没有内置的状态持久化功能,但你可以使用第三方库或自定义插件来实现状态的持久化。例如,你可以使用  localStorage  或  sessionStorage  来将状态

    2024年02月08日
    浏览(34)
  • vue3项目中使用pinia

    前言: 官网地址 https://pinia.vuejs.org/zh/ 中文文档 https://pinia.web3doc.top/ pinia    作为Vue.js 状态管理库 类型安全、可扩展性以及模块化设计。 甚至让你忘记正在使用的是一个状态库。 优点:   优点 dev-tools 支持 跟踪动作、突变的时间线 Store 出现在使用它们的组件中 time travel

    2023年04月26日
    浏览(47)
  • Vue3 store+pinia 基本使用

    pinia是一个 状态管理的库 ,用于 跨组件、页面进行状态共享 (这和Vuex、Redux一样),用起来像组合式API Pinia和Vuex有什么区别 1、PInia的最初是为了探索Vuex的下一次迭代会是什么样子,结合了Vuex核心团队讨论中的许多想法; 2、最终,团队意识到Pinia已经实现了Vuex5中大部分内

    2024年02月07日
    浏览(53)
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第4篇:静态结构搭建和路由配置,1. 准备分类组件【附代码文档】

    Vue3+ElementPlus+Pinia开发小兔鲜电商项目完整教程(附代码资料)主要内容讲述:认识Vue3,使用create-vue搭建Vue3项目1. Vue3组合式API体验,2. Vue3更多的优势,1. 认识create-vue,2. 使用create-vue创建项目,1. setup选项的写法和执行时机,2. setup中写代码的特点。什么是pinia,创建空Vue项目并安装

    2024年04月11日
    浏览(50)
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第一章 技术栈简介 (开篇)

    旨在帮助初学者掌握使用现代前端技术栈构建应用的基础知识和技能。在这个系列中,我们将深入探讨如何结合Vue.js、Vite、TypeScript、Pinia和Sass这些强大的工具和框架来开发现代化的前端应用。 通过这个系列,我们将从零开始构建一个完整的前端项目,覆盖项目初始化、组件

    2024年02月05日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包