首页 > 其他分享 >我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)

我的第一个项目(十三) :组件间传值的一些方案(vuex,eventbus,localStorage)

时间:2023-05-23 17:55:40浏览次数:34  
标签:Vue Vuex localStorage 组件 eventbus vuex store

好家伙,

 

先说一下我的需求,我要组件间传值

 

1.eventBus

前端兄弟组件传值eventbus无法使用

不报错也不触发,就很奇怪

//eventBus.js

import Vue from "vue";

export default new Vue();


//Mylogin.vue

<button type="button" class="btn btn-primary" @click="login">登录</button>

import bus from '../js/eventBus'

methods: {
    login() {
    bus.$emit('getLoginName', this.loginForm)
}

//Game.vue
import bus from '../js/eventBus'
  mounted() {
    bus.$on('getLoginName', (data) => {
    console.log("这是接收到的数据:", data)
    })
}

 

 

试试vuex了

2.vuex

2.1.什么是Vuex?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。

它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

(我把它理解为一个状态管理器)

 

2.2.Vuex的安装

npm install vuex --save

main.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
const store = new Vuex.Store({
  state: {
    count: 0,
    user: {
      id: '',
      password: '',
      life: null,
      score: null,
      loginName: null
    },
  },
  mutations: {
    increment(state) {
      state.count++
    }
  }
})

export default store;

new Vue({
  store: store,
}).$mount('#app')

 

Vuex 使用单一状态树——是的,用一个对象就包含了全部的应用层级状态。至此它便作为一个“唯一数据源 ”而存在。这也意味着,每个应用将仅仅包含一个 store 实例。

 

以上代码,我们可以使用

console.log(this.$store.state.user)

访问到数据

 

3.localStorage

我们换个思路,A组件把数据存到本地,

然后B组件读取,这在某种意义上也是一种"组件传值"

 

//存数据
localStorage.setItem("getuserdata", JSON.stringify(this.player));

//取数据
JSON.parse(localStorage.getItem("getuserdata"));

//删数据
localStorage.removeItem("getuserdata");

//清除所有
localStorage.clear();

 

标签:Vue,Vuex,localStorage,组件,eventbus,vuex,store
From: https://www.cnblogs.com/FatTiger4399/p/17417575.html

相关文章

  • localStorage使用总结
    1.什么是localStorage在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。2.localStorage的......
  • Vuex的使用
    1、Vuex介绍1.1、概念专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式管理(读/写),也是一种组件间通信的方式,且适用于任意组件之间的通信。1.2、什么时候使用Vuex多个组件共享同一个状态(数据)的时候。1.3、Vuex原理图注意:图中没有体现......
  • vuex 使用 vuex-persistedstate 数据持久化
    1、安装npmivuex-persistedstateyarnaddvuex-persistedstate2、在store.js中引入importcreatePersistedStatefrom"vuex-persistedstate"举例:importVuefrom'vue'importVuexfrom'vuex'importcreatePersistedStatefrom"v......
  • xstate在vue中像vuex/pinia那样管理数据
    //store.jsimport{assign,createMachine,interpret}from'xstate'import{useActor}from'@xstate/vue'constcounterMachine=createMachine({id:'counter',context:{count:0,},initial:'idle',......
  • vuex
    一、vuex理解https://vuex.vuejs.org/zh/guide/mutations.html vuex是组件状态管理,使用的是store容器去储存组件状态https://blog.csdn.net/m0_70477767/article/details/125155540详细介绍以及下载加入实例想要更改store中的状态唯一方法是提交mutation,mutation是同步操作,a......
  • vue项目中封装localStorage和sessionStorage
    1.为什么需要封装localStorage和sessionStorage?因为封装localStorage和sessionStorage可以提高程序的维护性、可重用性和扩展性,同时也可以使代码更为简单、易懂。2.以下是一个简单的代码封装示例可以新建一个utils目录文件,在该文件下新建storage.js文件进行封装//封装local......
  • 使用vue2+element-ui+vuex实现后台管理系统的头部背景色动态点击修改
    **以下内容仅供自己学习使用话不多说,直接上代码1.首先去vuex里面importVuefrom'vue';importVuexfrom'vuex';Vue.use(Vuex);conststore=newVuex.Store({state:{headerColor:'default-header',//定义一个默认的颜色},mutations:{ //setHe......
  • vue中 vuex踩坑笔记-刷新后动态路由不渲染
    在vue中,vuex经常用于存储公共状态,特别是在登录的时候获取token再保存,这个时候如果是做的动态路由,由于vuex的特性在你刷新后会清除你的所有操作的存储。这时候,存储的token和动态路由都会被清掉。如何解决这个问题:1.结合session或者cookie(通常用这个),token保存的时候,除了在vuex中......
  • vuex
    vuex介绍我们可以把vuex想象成一个手机店,所有用户都可以访问到这个手机店,手机店中有一个店员和一个维修人员,这个手机店有很多商品,比如:各种手机,蓝牙耳机,保护膜,保护套,手机卡等,这个商店的属性就相当于state。商店中还有一些商品,需要商家进行处理,比如充电器,耳机,手机套等一些东西,用户......
  • vuex
       ......