详解vuex的简单使用

这篇文章主要介绍了详解vuex的简单使用,现在分享给大家,也给大家做个参考。

1 目录的配置

根据官方推荐在src目录里面创建store目录

2 创建store里面的文件

根据官方推荐创建 actions.js, getters.js,index.js, mutations.js, mutations-types.js, state.js

立即学习“前端免费学习笔记(深入)”;

2.1 state.js

state.js: 是vuex的单一状态数,用一个对象就包含了全部的应用层级状态。至此它便作为一个『唯一数据源(SSOT)』而存在。这也意味着,每个应用将仅仅包含一个 store 实例。单一状态树让我们能够直接地定位任一特定的状态片段,在调试的过程中也能轻易地取得整个当前应用状态的快照。(用来管理所有vuex状态数据)

/** 是vuex的单一状态数,用一个对象就包含了全部的应用层级状态* 单一状态树让我们能够直接地定位任一特定的状态片段,在调试的过程中也能轻易地取得整个当前应用状态的快照。(用来管理所有vuex状态数据)**/const state = { // 城市状态,用来管理城市 city: {}, cityList: [], fullScreen: true, palyer: false};export default state;

登录后复制

2.2 mutations-types.js 存取mutations相关的字符常量 (一些常量)

/** 存取mutations相关的字符常量**/// 定义常量并导出export const SET_CITY = 'SET_CITY';export const SET_PLAY = 'SET_PLAY';export const SET_FULL_SCREEN = 'SET_FULL_SCREEN';export const SET_CITY_LIST = 'SET_CITY_LIST';

登录后复制

2.3 mutations.js (定义修改的操作)

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutations 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数

/* * 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation * Vuex 中的 mutations 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数 */// 导入mutation-type.js里面所有的常量import * as types from './mutation-types';// 定义一个mutation可以供设置和修改值const mutations = { /* * 1 表达式作为属性表达式放在方括号之内 * 2 形参state (获取当前状态树的state) * 3 形参city,是提交mutation时传的参数 * 4 使用mutation便于书写方便 * 5 这个操作相当于往state.js里面写入city  */ [types.SET_CITY](state, city) {  state.city = city; }, [types.SET_CITY_LIST](state, list) {  state.cityList = list; }, [types.SET_FULL_SCREEN](state, flag) {  state.fullScreen = flag; }, [types.SET_PLAY](state, palyState) {  state.palyer = palyState; }};// 导出mutationexport default mutations;

登录后复制

2.4 getters.js 有时候我们需要从 store 中的 state 中派生出一些状态。

mapGetters 辅助函数仅仅是将 store 中的 getters 映射到局部计算属性

/** 有时候我们需要从 store 中的 state 中派生出一些状态* 这里的常量主要是对state里面做一些映射* mapGetters 辅助函数仅仅是将 store 中的 getters 映射到局部计算属性*/// 对state里面的属性做一些映射export const city = state => state.city;  // 箭头函数的简写export const cityList = state => state.cityList;export const fullScreen = state => state.fullScreen;export const palyer = state => state.palyer;

登录后复制

2.5 actions.js

Action 类似于 mutation,不同在于:

Action 提交的是 mutation,而不是直接变更状态。

Action 可以包含任意异步操作。

在一个动作中多次改变mutation可以封装一个action

/** actions类似mutation* 区别:* 1:action提交的是mutation* 2:action可以包含任意异步操作*//* * 使用: * 1:在一个动作中多次改变mutation可以封装一个action */import * as types from './mutation-types';export const selectList = function ({commit, state}, {list, index}) { commit(types.SET_CITY_LIST, list); commit(types.SET_PLAY, false); commit(types.SET_FULL_SCREEN, true);};

登录后复制

2.6 index.js入口

/** 入口*/import Vue from 'vue';import Vuex from 'vuex';// import * as obj from 'xxxx'; 会将xxxx中所有export导出的内容组合成一个对象返回。import * as actions from './actions';// 拿到getters里面的映射import * as getters from './getter';import state from './state';import mutations from './mutations';import createdLogger from 'vuex/dist/logger';Vue.use(Vuex);const debug = process.env.NODE_ENV != 'production';export default new Vuex.Store({ actions, getters, state, mutations, strict: debug, plugins: debug ? [createdLogger()] : []});

登录后复制

3 使用

3.1 在mian.js注册store

在main.js里面new的Vue的实例里面注册store

3.2 写入值,要在组件中引入mapMutations的语法糖

引入语法糖

import {mapMutations, mapActions} from 'vuex';

登录后复制

在methods里面mapMutations 辅助函数将组件中的 methods 映射为 store.commit 调用

...mapMutations({ // 这里和mutation里面的常量做一个映射 setCity: 'SET_CITY'})

登录后复制

在需要的地方写入值

this.setCity(city);

登录后复制

3.3获取值

获得vuex中的值,要在组件中引入mapGetters(mapGetters 辅助函数仅仅是将 store 中的 getters 映射到局部计算属性)

引入mapGetters

import {mapGetters} from 'vuex';

登录后复制

在computed计算属性里面使用对象展开运算符将 getters 混入 computed 对象中

computed: {  // 这里面的city映射的是state.js里面的city  // 可以映射多个值  ...mapGetters([   'city',   'cityList',   'palyer',   'fullScreen'  ]) }

登录后复制

拿到值

created() {  console.log(this.city);  console.log(this.cityList[1]);  console.log(this.palyer);  console.log(this.fullScreen); }

登录后复制

3.4 action存入值

...mapActions(['selectList'])

登录后复制

在需要存入的地方使用

this.selectList({ list: this.citys, index: 1});

登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

Vue单页应用引用单独的样式文件的两种方式

基于js中的存储键值对以及注意事项介绍

angular4 共享服务在多个组件中数据通信的示例

以上就是详解vuex的简单使用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2753294.html

(0)
上一篇 2025年3月8日 06:35:55
下一篇 2025年2月28日 14:14:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用Vue.js实现微信公众号菜单编辑器(思路详解)

    这次给大家带来如何使用Vue.js实现微信公众号菜单编辑器(思路详解),使用Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下。 学习一段时间Vue.js,于是想尝试着做一个像微信平台里那样的菜单编辑器,在…

    2025年3月8日
    200
  • 如何使用Vue.js实现微信公众号菜单编辑器(案例代码)

    这次给大家带来如何使用Vue.js实现微信公众号菜单编辑器(案例代码),使用Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下。 实现菜单删除方法 在vue实例中添加删除菜单方法,根据选中的菜单级别和索引来…

    2025年3月8日
    200
  • 如何使用vue.js做出编辑菜谱功能

    这次给大家带来如何使用vue.js做出编辑菜谱功能,使用vue.js做出编辑菜谱功能的注意事项有哪些,下面就是实战案例,一起来看一下。 1、先获取门店下的所有菜品类型、菜品名称、菜品id(list),也就是最大数据量 this.$http.…

    2025年3月8日
    200
  • 怎样使用angularjs做出购物金额计算工具

    这次给大家带来怎样使用angularjs做出购物金额计算工具,怎样angularjs做出购物金额计算工具的注意事项有哪些,下面就是实战案例,一起来看一下。 当我们用js或者jquery进行购物车金额计算的时候会非常麻烦,今天,我们用angu…

    编程技术 2025年3月8日
    200
  • 怎样使用V-Distpicker组件

    这次给大家带来怎样使用V-Distpicker组件,使用V-Distpicker组件的注意事项有哪些,下面就是实战案例,一起来看一下。 1、安装 使用 npm 安装: npm install v-distpicker –save 登录后复…

    编程技术 2025年3月8日
    200
  • ES6中Promise使用详解

    这次给大家带来ES6中Promise使用详解,ES6中Promise使用的注意事项有哪些,下面就是实战案例,一起来看一下。 当然,这并不代表迸发成了全栈。全栈的技能很集中,绝不仅仅是前端会写一些HTML和一些交互,后台熟悉数据库的增删查改。…

    编程技术 2025年3月8日
    200
  • Vue数据响应使用步骤详解

    这次给大家带来Vue数据响应使用步骤详解,使用Vue数据响应的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 Vue的数据响应主要是依赖了Object.defineProperty(),那么整个过程是怎么样的呢?以我们自己的想法来走…

    2025年3月8日 编程技术
    200
  • JS加载方式使用汇总

    这次给大家带来JS加载方式使用汇总,JS加载方式使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一:同步加载 我们平时使用的最多的一种方式。 同步模式,又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进…

    编程技术 2025年3月8日
    200
  • 如何使用Vuex实现计数器功能

    这篇文章主要为大家详细介绍了vuex实现计数器以及列表展示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下  本篇教程将以计数器及列表展示两个例子来讲解Vuex的简单用法。 本案例github 从安装到启动初始页面的过程都直接跳过。注…

    2025年3月8日
    200
  • 如何使用redux-saga,使用redux-saga又有哪些方法和技巧?

    这篇文章主要介绍了redux-saga 初识和使,现在分享给大家,也给大家做个参考。 redux-saga 是一个管理 Redux 应用异步操作的中间件,功能类似redux-thunk + async/await, 它通过创建 Sagas …

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论