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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本