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

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创