0


Pinia 使用方法,配合localStorage实现存储用户信息

什么是 Pinia

Pinia 是 Vue.js 应用程序的一个现代化的状态管理库,它用于集中管理和共享组件之间的数据,state、getter、和 action 是构建状态管理的核心概念,它们分别对应数据存储、计算属性和操作方法。

使用方法

安装

  1. npminstall pinia

main.js引入

  1. import{ createPinia } from 'pinia'
  2. const pinia = createPinia()
  3. app.use(pinia)
  4. app.mount('#app')

创建文件

在 src 文件中,创建 store 文件,里面按模块创建js文件

store/user.js

  1. import{ defineStore } from 'pinia'import{ ref } from 'vue'export const useUserStore = defineStore('userInfo', {
  2. // 类似于data
  3. state: ()=>{return{
  4. userInfo: null
  5. }},
  6. // 类似于methods
  7. actions: {
  8. setUserInfo(userInfo){
  9. this.userInfo = userInfo
  10. }}})

使用

由于我想使用pinia实现用户登录信息的管理,并使用localStorage实现持久化存储。

login.vue

  1. <script>import background from '../assets/img/background-0625.png'import{useUserStore} from "../stores/user.js"import axios from 'axios'export default{data(){
  2. return{
  3. background,
  4. loginInfo:{
  5. phone:"",
  6. password:""}}},
  7. methods:{loginUser(){
  8. response = await axios.post('http://127.0.0.1:8000/user/login', this.loginInfo)
  9. if(response.data.code ==200){
  10. // 登录成功后将用户信息存入pinia,实现组件间的变量共享
  11. useUserStore().userInfo = response.data.data
  12. // 同时存入localStorage做持久化缓存
  13. localStorage.setItem("userInfo", JSON.stringify(response.data.data))
  14. this.$router.push('/')}},
  15. onRegister(){
  16. this.$router.push('/register')}}}</script>

本文转载自: https://blog.csdn.net/weixin_43589681/article/details/140179525
版权归原作者 colorful_-_ 所有, 如有侵权,请联系我们删除。

“Pinia 使用方法,配合localStorage实现存储用户信息”的评论:

还没有评论