7.Vuex
import Vue from "vue";
import Vuex from "vuex";
import { HEADER } from './modules/mutationTypes';
import headerModules from './modules/header';
Vue.use(Vuex)
// 使用export封装代码,让外部可以引用
export default new Vuex.Store({
modules: {
[HEADER]: headerModules
}
})
新建header.js存放基础配置
import {
USER_INFO, NOW_APP, SET_USER_INFO, SET_NOW_APP
} from './mutationTypes'
//1.state
//this.$store.state.header.nowApp.name
const state = {
userInfo: {
userName: '未知用户',
userId: '000000',
roleList: ['非法用户'],
email: '',
code: '000000'
},
// 汇总数据查询任务ID
nowApp: {}
}
//2.getters
const getters = {
[USER_INFO]: state => state.userInfo,
[NOW_APP]: state => state.nowApp
}
//3.actions
const actions = {
[SET_NOW_APP]({ commit }, data) {
commit(SET_NOW_APP, data)
}
}
//4.mutations
const mutations = {
[SET_USER_INFO](state, data) {
state.userInfo = data
},
[SET_NOW_APP](state, data) {
state.nowApp = data
}
}
export default {
namespaced: true, // 开启命名空间
state, // 共同维护的一个状态,state里面可以是很多个全局状态
getters, // 获取数据并渲染
actions, // 数据的异步操作
mutations // 处理数据的唯一途径,state的改变或赋值只能在这里
}
//此文件存放vuex中mutation常量
// header模块
export const HEADER = 'header'
// getters
export const USER_INFO = 'USER_INFO'
export const NOW_APP = 'NOW_APP'
// mutations
export const SET_USER_INFO = 'SET_USER_INFO'
export const SET_NOW_APP = 'SET_NOW_APP'
import store from "./store";
new Vue({
el: '#app',
router,
store, //store:store 和router一样,将我们创建的Vuex实例挂载到这个vue实例中
render: h => h(App)
})
<h2>vuex状态:{{ $store.state.header.nowApp.name }}</h2>
修改状态
<div><button class="btn" @click="setAppName">++++++</button></div>
<script>
import { mapActions } from "vuex"
import { HEADER, SET_NOW_APP } from "@/store/modules/mutationTypes"
export default {
methods:{
// 语法糖,调用store下header.js中3.actions修改状态信息
...mapActions(HEADER, {
// 相当于this.$store.dispatch('modifyName'),提交这个方法
setNowApp: SET_NOW_APP,
}),
setAppName(){
let defaultApp = {name:'nnnn'};
console.log(">>>>>",defaultApp);
this.setNowApp(defaultApp);
console.log(">>>>>",this.$store.state.header.nowApp.name);
},
//跳转
trunToB () {
this.$router.push({path: "/pages/userGroupDetail"}) // 路由跳转到详情页
}
}
}
7.Vuex的更多相关文章
- 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库
应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
- vuex 初体验
vuex是vue的状态管理工具,vue进阶从es6和npm开始,es6推荐阮一峰大神的教程. vuex学习从官方文档和一个记忆小游戏开始.本着兴趣为先的原则,我先去试玩了一把-->. Vuex ...
- vuex(1.0版本写法)
Vuex 是一个专门为 Vue.js 应用所设计的集中式状态管理架构. 官方文档:http://vuex.vuejs.org/zh-cn/ 2.0和1.0都能在此找到 每一个 Vuex 应用的核心就 ...
- 关于Vue vuex vux 文档
01. vue 链接 http://vuejs.org.cn/guide/ 02. vuex ----->>状态管理模块儿<<------- https://vuex.vue ...
- vuex
英文:(Introduction)中文:https://github.com/vuejs/vuex/issues/176(贡献者努力中)
- Vue 2.0 + Vue Router + Vuex
用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...
- Vue2.X的状态管理vuex记录
记住上述的顺序情况:想要改变state,只能通过Mutation,虽然action可以直接改变state,这样会使每个状态可以方便的跟踪和记录(用Devtools跟踪) vue Method -- ...
- 在vue1.0遇到vuex和v-model的坑
事情是这样的,在开发项目的过程中我使用了vuex并且在store中定义了一个保存用户信息的对象 userInfo : { 'nickName' : '', // 昵称 'password' :'', ...
- vuex 笔记
Vuex 笔记 一个简单的状态管理 单一数据源: const sourceOfTruth = {} const vmA = new Vue({ data: sourceOfTruth }) const ...
随机推荐
- python之typing
typing介绍 Python是一门动态语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参 ...
- k8s之基础篇
相关概念: kube-apierver: 控制平面组件,负责kubernetes api, 处理接受的请求工作 kube-controller-manager: 控制平面组件, 负责运行控制器进程 k ...
- golang之copier
今天我们要介绍的copier库就能处理不同类型之间的赋值.除此之外,copier还能: 调用同名方法为字段赋值: 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情) ...
- 设计模式【3.1】-- 浅谈代理模式之静态、动态、cglib代理
代理模式:为其他对象提供一种代理以控制对这个对象的访问,在某种情况下,一个对象不适合或者不能够直接引用另一个对象,而代理对象可以在客户类和目标对象之间起到中介的作用. 可以这么理解:使用代理对象,是为 ...
- C# 企业微信消息推送对接,实现天气预报推送
C# 企业微信消息推送对接,实现天气预报推送 迷恋自留地 准备工作 需要获取的东西1. 企业Id,2.应用secret 和 应用ID 获取企业id 注册完成后,在我的企业=>企业信息=>最 ...
- Prometheus 3.0.0 升级中遇到的 `--storage.tsdb.retention` 错误的修复方法
在将 Prometheus 升级到 3.0.0 后,许多用户会遇到以下错误: Error parsing command line arguments: unknown long flag '--st ...
- jmeter使用jdbc连接SQL server,执行SQL报错处理
前置环境参数:jdk-8u391-windows-x64,驱动:sqljdbc4.jar 备注:这是解决后的截图,将就用 问题一:使用jmeter5.5,使用jdbc连接SQL server,执行SQ ...
- Ubuntu22.04安装cuda12.1+cudnn8.9.2+TensorRT8.6.1+pytorch2.3.0+opencv_cuda4.9+onnxruntime-gpu1.18
说来话长,我想配一个一劳永逸的环境,方便以后复用.省的以后反复查教程重新装了 1. 安装miniconda+py3.10 cd /root wget -q https://repo.anaconda. ...
- "一基双台三智" 中电金信智慧监督解决方案构筑国央企风控堡垒
近年来,国务院国资委先后下发<关于进一步排查中央企业融资性贸易业务风险的通知>.<关于规范中央企业贸易管理严禁各类虚假贸易的通知>等各类监管法规,并在2024年初中央企业工作会 ...
- 【数据库】MySQL的一些基础知识
ALTER TABLE 表名 DROP 属性名 删除数据表 DROP TABLE 数据库名.表名; 用户管理 创建用户 CREATE USER 'username'@'host' IDENTIFIED ...