vue Vuex解决不同组件的数据共享 数据持久化

本文主要是介绍vue Vuex解决不同组件的数据共享 数据持久化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Vuex解决不同组件(不同页面)的数据共享 数据持久化。

 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

====>

1.vuex 解决了组件之间同一状态的共享问题 (解决了不同组件之间的数据共享)

2.组件里面数据的持久化

小项目不建议使用vuex,可使用localstore 代替

 

1.安装vuex

npm install vuex --save

2.在src目录下新建一个vuex的文件夹

3.vuex文件夹下新建一个store.js文件

4.在store.js中引入vue 引入vuex 并且use(vuex)

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)//1.state 在vuex中用于存储数据var state ={count:1
}//2.mutations 里面放的是方法,方法朱勇用于改变state 里面的数据var mutations={incCount(){++state.count;}
} //vuex 实例化 Vuex.Storeconst store = new Vuex.Store({state,muntations:muntations  //muntations
})//导出
export default store;

使用:

1.引用store

//在home.vue 里面的js中//1.引入store.jsimport store from '../vuex/store.js'//2.注册export default {data(){return{msg:''}},store,methods:{}}

2. home.vue 中的 使用  this.$store.state.count.    

3.改变count值

//在home.vue 里面的js中//1.引入store.jsimport store from '../vuex/store.js'//2.注册export default {data(){return{msg:''}},store,methods:{incCount(){//改变vuex store里面的数据this.$store.commit('incCount');//触发mutations里面的方法改变数据}}}

 

=============================>

Getters以及Actions 的使用

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)//1.state 在vuex中用于存储数据var state ={count:1
}//2.mutations 里面放的是方法,方法朱勇用于改变state 里面的数据var mutations={incCount(){++state.count;}
} //3.有点类似计算属性   改变state里面的count 数据的时候会触发 getters 里面的方法 获取新的值var getters={computedCount:(state)=>{return state.count*2}}//4.Action 类似于 mutation,不同在于://Action 提交的是 mutation,而不是直接变更状态。//Action 可以包含任意异步操作。var actions= {incMuntationsCount (context) { //因此你可以调用 context.commit 提交一个 mutation,context.commit('incCount') //执行mutations 里面的incCount方法 改变 states里面的count}}//vuex 实例化 Vuex.Storeconst store = new Vuex.Store({state,muntations:muntations,  //muntationsgetters,actions
})//导出
export default store;

页面上使用getters的数据:home.vue 中的 使用 this.$store.getters.computedCount.

 

1.触发action 

this.$store.dispatch('incMuntationsCount') //dispatch 触发 actions 里面的incMuntationsCount 方法

这篇关于vue Vuex解决不同组件的数据共享 数据持久化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105133

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

Redis事务与数据持久化方式

《Redis事务与数据持久化方式》该文档主要介绍了Redis事务和持久化机制,事务通过将多个命令打包执行,而持久化则通过快照(RDB)和追加式文件(AOF)两种方式将内存数据保存到磁盘,以防止数据丢失... 目录一、Redis 事务1.1 事务本质1.2 数据库事务与redis事务1.2.1 数据库事务1.

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

不删数据还能合并磁盘? 让电脑C盘D盘合并并保留数据的技巧

《不删数据还能合并磁盘?让电脑C盘D盘合并并保留数据的技巧》在Windows操作系统中,合并C盘和D盘是一个相对复杂的任务,尤其是当你不希望删除其中的数据时,幸运的是,有几种方法可以实现这一目标且在... 在电脑生产时,制造商常为C盘分配较小的磁盘空间,以确保软件在运行过程中不会出现磁盘空间不足的问题。但在

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能