VueX详解

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

什么是状态管理模式:

听着云里雾里,在实际的单页面应用开发中,我们经常会遇到组件之间通信的问题,在我看来vuex完美的解决了这个问题(个人理解)

首先我们来看看它的结构

这块呢我们也采用了模块化的写法:

首先store.js

它的主要作用是将定义的子模块引入到store对象中,代码如下:

import Vue from ‘vue‘
import Vuex from ‘vuex‘
import overRall from "./modules/overrall"
import puduct from "./modules/puduct.js"
Vue.use(Vuex);
export default new Vuex.Store({
modules:{
overRall: overRall,
puduct: puduct
}
})

重点来了,来看看我们的子模块,首先上代码:(puduct.js)

export default{
state:{
modal:{
name:"6666",
sid:"1",
groupid:"10",
orderid:"12",
lasttime:"1497919736"
},
isshow: false
},
mutations: {
setModal (state, modal){
state.modal.name = modal.name;
state.modal.sid = modal.sid;
state.modal.groupid = modal.groupid;
state.modal.orderid = modal.orderid;
state.modal.lasttime = modal.lasttime;
},
setShow (state, isShow){
state.isshow = isShow;
}
},
getters: {
getModal: state => {
return state.modal;
},
getIsShow: state => {
return state.isshow;
}
}

}

state:为自定义的状态,可以是对象,也可以是变量,视情况而定;

mutations: 为自定义外部设置state的接口;(相当于set)

getters:为子模块中获取现在状态的接口;(相当于get)

好,现在我们的状态管理的js已经准备好了,我们看看怎么用它,

首先在vue单页面项目的主js中引入我们的store.js,如下;

import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import store from ‘./vuex/store.js‘

Vue.config.productionTip = false
Vue.http.options.xhr = { withCredentials: true }
Vue.http.options.emulateJSON = true;

/* eslint-disable no-new */
new Vue({
el: ‘#app‘,
store,
router,
template: ‘<App/>‘,
components: { App }
})

在创建vue对象的时候把我们的store.js穿进去,到此所有的准备工作已经就绪,我们一起来见证它如何使用。

在vue的子模块中,我们不需要再去引入store.js了

直接可以使用vue的$store对象,

我们可以直接使用this.$store就可以获取到我们定义的store对象,这里要注意在需要设置状态的时候也就是之前说的mutations中的方法,是需要以固定格式this.$store.commit(方法名, 设置的值)

去进行操作的

对应的getters ;this.$store.getters.getAccount

到此关于vuex的一些经验就说道这里,但我总觉的vuex不止如此,希望大家多多指正

时间: 2024-10-07 19:58:06

VueX详解的相关文章

vue:vuex详解

什么是Vuex? 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 个人理解:Vuex是用来管理组件之间通信的一个插件 为什么要用Vuex? 我们知道组件之间是独立的,组件之间想要实现通信,我目前知道的就只有props选项,但这也仅限于父组件和子组件之间的通信.如果兄弟组件之间想要实现通信呢?嗯..,方法应该有.抛开怎么实现的问题,试想一下,当做中大型项目时,面对一大堆组件之间的通

Vue.js中学习使用Vuex详解

在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为同一状态管理,个人的理解是全局状态管理更合适:简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取.进行修改,并且你的修改可以得到全局的响应变更.下面咱们一步一步地剖析下vuex的使用:首先要安装.使用 vuex首先在 vue 2.0+ 你的vue-cli项目中安装 vuex : npm install vuex --save 然后 在src文件目录下新建一个名为store的文件

简单明了的vuex详解

vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试.状态快照导入导出等高级调试功能. 个人简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取,进行修改,并且你的修改可以得到全局的响应变更. 首先下载vue

vuex详解vue简单使用

vue概念:vuex 是 Vue 配套的 公共数据管理工具,它可以把一些共享的数据,保存到 vuex 中,方便 整个程序中的任何组件直接获取或修改我们的公共数据: 配置vuex的步骤: 1.运行cnpm i vuex -S 2.导包 import Vuex from 'vuex' 3.将vuex注册到vue中 Vue.use(Vuex) 4.new Vuex.Store() 实例,得到一个 数据仓储对象 var store = new Vuex.Store({ state: { // 大家可以把

vuex 详解

vuex 是一个专门为vue.js应用程序开发的状态管理模式. 这个状态我们可以理解为在data中的属性,需要共享给其他组件使用的部分. 也就是说,是我们需要共享的data,使用vuex进行统一集中式的管理. 核心原理图:     vuex中,有默认的五种基本的对象: state:存储状态(变量) getters:对数据获取之前的再次编译,可以理解为state的计算属性.我们在组件中使用 $sotre.getters.fun() mutations:修改状态,并且是同步的.在组件中使用$stor

VueJS中学习使用Vuex详解

在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为同一状态管理,个人的理解是全局状态管理更合适:简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取.进行修改,并且你的修改可以得到全局的响应变更.下面咱们一步一步地剖析下vuex的使用: 首先要安装.使用 vuex 首先在 vue 2.0+ 你的vue-cli项目中安装 vuex : npm install vuex --save 然后 在src文件目录下新建一个名为store的

vuex里mapState,mapGetters使用详解

这次给大家带来vuex里mapState,mapGetters使用详解,vuex里mapState,mapGetters使用的注意事项有哪些,下面就是实战案例,一起来看一下. 一.介绍 vuex里面的四大金刚:State, Mutations,Actions,Getters (上次记得关于vuex笔记 http://www.jb51.net/article/138229.htm,是一个简单的应用:这是一些简单的vue的小组件方法: http://www.jb51.net/article/1382

vue-cli脚手架中webpack配置基础文件详解

一.前言 vue-cli是构建vue单页应用的脚手架,输入一串指定的命令行从而自动生成vue.js+wepack的项目模板.这其中webpack发挥了很大的作用,它使得我们的代码模块化,引入一些插件帮我们完善功能可以将文件打包压缩,图片转base64等.后期对项目的配置使得我们对于脚手架自动生成的代码的理解更为重要,接下来我将基于webpack3.6.0版本结合文档将文件各个击破,纯干料.重点章节点击查看:package.json:config/index.js:webpack.base.con

vue-cli3.0配置详解

这次给大家带来vue-cli3.0配置详解,使用vue-cli3.0配置的注意事项有哪些,下面就是实战案例,一起来看一下. 新建项目 1 2 3 4 5 6 7 8 # 安装 npm install -g @vue/cli # 新建项目 vue create my-project # 项目启动 npm run serve # 打包 npm run build 打包后的文件,对引用资源注入了预加载(preload/prefetch),启用 PWA 插件时注入 manifest/icon 链接,并且